отображение календаря с помощью Exchange EWS API

В своем проекте я использую MVC, C#, razor…

Я успешно использую EWS для создания встреч в моем календаре.
Однако я понятия не имею, как отобразить календарь с помощью EWS.

Для того, что я собрал, мне нужно сделать GETAppointments на EWS и после этого использовать какой-то другой самородок для отображения календаря, используя те встречи, которые я получил от GET.

Я искал в интернете и нашел самородок под названием daypilot(asp.net), однако я не могу, кажется, адаптировать его к моему проекту и не могу найти какие-либо альтернативы.

Не могу найти хороших учебников по этому вопросу, или, может быть, я просто ищу неправильные темы…

Есть идеи или ссылки на хорошие учебники?

Спасибо заранее.

1 ответ

  1. Для тех, у кого в будущем может возникнуть та же проблема, я опубликую копию некоторых частей моего решения:

    webservice я создал:

        public IEnumerable<Microsoft.Exchange.WebServices.Data.Appointment> getAppointments(string userName, string userPwd)
        {
    
            DateTime startDate = DateTime.Now.AddYears(-1);
            DateTime endDate = startDate.AddYears(1);
            const int NUM_APPTS = 5;
    
            ExchangeService serviceExchange = ExchangeWebService.ConnectToService(userName, userPwd);
    
    
            // Initialize the calendar folder object with only the folder ID. 
            CalendarFolder calendar = CalendarFolder.Bind(serviceExchange, WellKnownFolderName.Calendar, new PropertySet());
    
            // Set the start and end time and number of appointments to retrieve.
            CalendarView cView = new CalendarView(startDate, endDate, NUM_APPTS);
    
            // Limit the properties returned to the appointment's subject, start time, and end time.
            cView.PropertySet = new PropertySet(AppointmentSchema.Subject, AppointmentSchema.Start, AppointmentSchema.End);
    
            // Retrieve a collection of appointments by using the calendar view.
            FindItemsResults<Microsoft.Exchange.WebServices.Data.Appointment> appointments = calendar.FindAppointments(cView);
    
    
            return appointments;
        }
    

    Затем на контроллере:

        public JsonResult AllCalendarApp()
        {
            WebServiceBO webServiceBO = new WebServiceBO();
            var CalendarAppointments = webServiceBO.getAppointments(User.Identity.Name, this.Session["UserPass"].ToString());
    
            List<string> listAllAppontments = new List<string>();
    
            List<calendario> listAllAppontmentss = new List<calendario>();
            foreach (Microsoft.Exchange.WebServices.Data.Appointment item in CalendarAppointments)
            {
                listAllAppontmentss.Add(new calendario() { title = item.Subject, start = item.Start });
            }
    
            return Json(listAllAppontmentss, JsonRequestBehavior.AllowGet);
        }
    

    И, наконец, на вид:

            <div id='calendar'></div>
    
    $(document).ready(function () {
    
        $.ajax({
            url: '/BackOffice/AllCalendarApp',
            type: 'POST',
            data: {},
            success: function (data) {
                $('#calendar').fullCalendar({
                    editable: false,
    
                    events: data
                    });
            }
        })
    
    
    });
    

    Я использовал fullcalender для отображения календаря ( https://fullcalendar.io/ ).