ExchangeService.FindItems () - PullRequest
       7

ExchangeService.FindItems ()

0 голосов
/ 25 апреля 2018

Мне было предложено создать приложение, которое должно создать общую базу из 3 различных источников адресов электронной почты, и обновить каждую базу, используя наиболее распространенный обновленный набор данных.Среди трех источников у меня есть адресная книга контактов сервера Exchange.Я знаю, что могу получить доступ к таким данным через EWS, и, в частности, мне, вероятно, следует использовать метод ExchangeService.FindPeople () или, возможно, FindPersona ().Это должно работать, но, так как я ищу только новые / обновленные контакты, он будет значительно загружать сервер (возможно, не для новых записей, но я не могу понять, как получить записи обновлений), и это не очень хорошая практика.В документах MSDN я нашел способ получать уведомления об обновлениях в базе сообщений, но ничего не связано с обновлениями в контактах:

https://msdn.microsoft.com/en-us/library/office/dn458791(v=exchg.150).aspx

Есть ли что-то, о чем нужно уведомлять об обновленияхконтакты (даже через сторонние продукты / API).

PS Я хотел бы написать код на C # (или на других языках .NET), но я открыт для всего остального.

1 Ответ

0 голосов
/ 25 апреля 2018

Вы должны иметь возможность проверять вновь созданные контакты, просматривая контакты и получая доступ к свойству DateTimeCreated для каждого из них.

Чтобы проверить наличие обновленных контактов, вы можете использовать свойство LastModifiedTime.

// Get the number of items in the Contacts folder.
ContactsFolder contactsfolder = ContactsFolder.Bind(service, WellKnownFolderName.Contacts);

// Set the number of items to the number of items in the Contacts folder or 50, whichever is smaller.
int numItems = contactsfolder.TotalCount < 50 ? contactsfolder.TotalCount : 50;

// Instantiate the item view with the number of items to retrieve from the Contacts folder.
ItemView view = new ItemView(numItems);

// To keep the request smaller, request only the DateTimeCreated and LastModifiedTime properties.
view.PropertySet = new PropertySet(BasePropertySet.IdOnly, ContactSchema.DateTimeCreated, ContactSchema.LastModifiedTime);

// Retrieve the items in the Contacts folder that have the properties that you selected.
FindItemsResults<Item> contactItems = service.FindItems(WellKnownFolderName.Contacts, view);

// Display the list of contacts. 
foreach (Item item in contactItems)
{
    if (item is Contact)
    {
        Contact contact = item as Contact;
        if (contact.DateTimeCreated.Date == DateTime.Today.Date)
        {
           //Notify - Newly created contact
        }

        if (contact.LastModifiedTime.Date == DateTime.Today.Date)
        {
           //Notify - Newly modified contact
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...