0

我正在使用 ews-java-api 并且有很多问题

我创建约会并听取其他地方创建的约会。

我的问题是我创建约会

new Appointment(exchangeService).save(notificationMode)

我还将约会详细信息(包括 uniqueId,我们称之为 x)保存到我的数据库中

我看到约会出现在交换没有问题,然后我看到一个通知它已被自动接受(我可以关闭房间的自动接受,但仍然在下面遇到同样的问题。

然后我看到我的交换订阅者启动,因为它从交换接收到新约会已创建的通知事件。我似乎每次都会收到 4 个事件,一个创建事件,两个修改事件和移动事件。

问题是这些事件中的每一个都有一个独特的 y 而不是我所期望的 x 。

这意味着我无法检查这是否是我已经创建的约会。

我从来没有像我期望的那样收到带有原始 uniqueId x 的事件。我知道唯一的 ID 可以改变,这很糟糕,但似乎没有任何其他领域我可以使用。

有什么想法可以解决/解决这个问题吗?

4

1 回答 1

1

当项目所在的活动目录发生变化时,项目的给定 ID 将发生变化。听起来您的自动接受正在移动该项目。我没有测试过这种情况。

如果您执行简单的 .save() 操作,您将在下一次推/拉时从交换中获得创建和修改事件。似乎没有办法阻止这种情况。它们应该与您从保存中获得的 id 相同。您只需要检查您是否已经拥有要创建的项目。对于修改,我不能代表微软说我们为什么要修改,但它应该与创建完全相同。

然后,当项目更改目录时,您将获得修改和移动事件。这 2 个项目的 ID 与您在原始保存期间收到的 ID 不同。ItemEvent 有一个我相信你可以使用的 oldItemId。也可以从这些 id 中解析出 GUID,这些 id 不会改变,但我认为不需要这样做。最好的方法可能是使用 OldItemId 并处理移动事件。

于 2016-08-10T14:53:28.747 回答