【发布时间】:2013-06-06 15:37:22
【问题描述】:
我正在使用 C# 中的托管 EWS API 来实现电子邮件/日历客户端。为了处理更新,我正在使用拉取通知。我试图弄清楚如何正确处理重复系列的“删除”事件。该事件在技术上是一个移动事件,因为它显示为将系列移动到垃圾文件夹。
在处理重复出现的系列时,您获得的事件始终是重复出现的主人的。我已经成功实现了“添加”案例,方法是使用主 ID 和重复信息来同步我感兴趣的所有个别事件,但无法弄清楚删除/删除案例。
到目前为止,我已经研究了两种主要方法:
1) 尝试重复使用更改键。在循环系列中,所有实例的更改键都是相同的。因此,我尝试在缓存中查找具有匹配更改键的约会。但是,在这种情况下更改键不匹配,因为当您收到事件时,该系列已被移动到垃圾文件夹,因此有一个新的更改键。
2) 使用移动/删除事件中的重复主节点绑定到我缓存中的约会,然后尝试根据这些事件的唯一 ID 进行删除。这与 #1 的原因不同。当我收到事件时,该系列已经被移动,并且所有事件都有新的 ID。因此,查找中的新 ID 与我拥有的旧 ID 都不匹配。
为了完整起见,我在事件中使用了 OldItemId,但正如预期的那样,我无法对此 ID 执行任何绑定,因为该项目不再存在于服务器上。
因此,简而言之,我未能找到任何方法将重复系列的“移至垃圾箱”事件与实际的原始重复系列联系起来。这是不可能的还是我错过了什么?
我现在要测试一些对约会的重复主 ID 的主动缓存。 IE。对于我同步的每个约会,我将测试它是否是系列的一部分并加载该系列的重复主人的 ID。然后,当我收到删除/移动事件时,我应该能够将事件中的 OldItemId 链接到我缓存的重复主状态,然后删除所有相关的事件。
【问题讨论】: