30 мая 2014 г.

порнография с EWS:

По простецки поковыряться в календаре пользователя Exchange можно так:

        Dim ES As ExchangeService = New ExchangeService(ExchangeVersion.Exchange2010_SP2)
        ES.Credentials = New WebCredentials("логин_пользователя_у_которого_полно_прав_на_чужие_ящики@домен", "пароль")
        ES.Url = New Uri("https://доменноеимяпочтовогосервера/EWS/Exchange.asmx")
        ES.AutodiscoverUrl("логин_календарь_которого_нам_нужен@домен")
        Dim CalendarFolderId As New FolderId(WellKnownFolderName.Calendar, CalMail)

        Dim iv As CalendarView = New CalendarView(Today, Today.AddMonths(1))

         For Each i As Appointment In ES.FindAppointments(CalendarFolderId, iv)
                ........
         Next

Дык оказывается при таком использовании приложение не получает от сервера некоторые свойства событий (например списки участников встреч). Т.е. список участников как будто бы будет, но с нулевым составом, и соотв. толку никакого. Одна путаница. Лучше бы говорил "не могу показать этого свойства потому что...".

Если Вы хотите получить эти свойства, то красную строчку надо поменять на вот это:

        Dim t = ES.FindAppointments(CalendarFolderId, iv)
        ES.LoadPropertiesForItems(t, PropertySet.FirstClassProperties)

        For Each i As Appointment In t

Т.е. явным способом указать что Вам нужно вытряхнуть из эксча побольше свойств (ES.LoadPropertiesForItems(t, PropertySet.FirstClassProperties)).


Комментариев нет:

Отправить комментарий