2014-03-13 168 views
0

如何使用EWS 2.0恢復已刪除的約會? 我想我可以在WellKnownFolderName.RecoverableItemsDeletions文件夾中搜索它。但是我擁有的是ItemId。遺憾的是我不能在SearchFilter中使用它...如何恢復已刪除的約會

什麼是最好的方法?

我嘗試:

ItemView view = new ItemView(10); 

SearchFilter searchFilter = new SearchFilter.IsEqualTo(ItemSchema.Id, itemChange.ItemId); 

var findResults = exchangeService.FindItems(WellKnownFolderName.RecoverableItemsDeletions, searchFilter, view); 

List<ItemId> ids = null; 
foreach (var findResult in findResults) 
{ 
    Debug.WriteLine(findResult.Id.ToString()); 
    ids.Add(findResult.Id); 
} 
exchangeService.MoveItems(ids, WellKnownFolderName.Calendar); 

出現錯誤:

{ 「類型 '的價值ITEMID' 不能在搜索過濾器可以作爲比較值」}

回答

1

當您正在搜索約會時,將您的WellKnownFolderName設置爲DeletedItems。你應該設置你的搜索過濾器來只返回約會,因爲DeletedItems文件夾可以容納的不僅僅是你正在尋找的約會。這是一個應該爲你工作的例子。

ItemView view = new ItemView(10); 
// Only look for appointments 
SearchFilter searchFilter = new SearchFilter.IsEqualTo(ItemSchema.ItemClass, "IPM.Appointment"); 
// Look for items in the DeletedItems folder 
FindItemsResults<Item> results = service.FindItems(WellKnownFolderName.DeletedItems, searchFilter, view); 
// Move each of the deleted items back to the calendar 
List<ItemId> ItemsToMove = new List<ItemId>(); 
foreach (Item item in results) 
{ 
    ItemsToMove.Add(item.Id); 
} 
service.MoveItems(ItemsToMove, WellKnownFolderName.Calendar);