【问题标题】:How to restore deleted appointment如何恢复已删除的约会
【发布时间】:2014-03-13 12:42:48
【问题描述】:

如何使用 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' 类型的值不能用作搜索过滤器中的比较值。"}

【问题讨论】:

    标签: c# restore exchangewebservices appointment


    【解决方案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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-23
      • 2021-09-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多