Используя этот код, я создаю подтверждение концепции синхронизации календаря outlook, управляемого My Exchange (2007 SP1), с возможностью синхронизации с другими системами календаря через Управляемый API Exchange EWS .
static void SyncAppointments()
{
ChangeCollection<ItemChange> changeCollection = service.SyncFolderItems(new FolderId(WellKnownFolderName.Calendar), PropertySet.FirstClassProperties, null, 512, SyncFolderItemsScope.NormalItems, syncState);
Console.WriteLine("\n\n");
Console.WriteLine("Changes");
Console.WriteLine("============================\n");
if (changeCollection.Count > 0) {
foreach (ItemChange item in changeCollection)
{
Console.WriteLine("ChangeType: " + item.ChangeType.ToString());
Console.WriteLine("ItemId: " + item.ItemId.UniqueId);
Console.WriteLine("Subject: " + item.Item.Subject);
Console.WriteLine("===========\n");
}
}
else {
Console.WriteLine("No changes to Sync.\n");
}
syncState = changeCollection.SyncState;
}
Это прекрасно работает для большей части , я получаю первый набор изменений по умолчанию (все элементы), а затем я получаю No changes to Sync.
... теперь, когда я создаюназначение через EWS, а затем запустить операцию синхронизации Я получаю ожидаемый результат .Появляется элемент изменения, отражающий создание встречи (и он появляется в Outlook).
Changes
============================
ChangeType: Create
ItemId: AAMkADRjYjE1NTVlLTk5ODktNGJiYS1hMTdjLTU2MzE5OGU5ZWNlOABGAAAAAADPxihYdsIG
TqRV5hKVbnQhBwASbprVW92zQZkfrIZIxiR2AEg2AOQDAAASbprVW92zQZkfrIZIxiR2AEg2KWYFAAA=
Subject: New Appointment
===========
Теперь, если я добавляю / отменяю встречи через Outlook, операция синхронизации не принимает изменения .
Changes
============================
No changes to Sync.
Почему это?