我正在编写一些代码来预订与 Outlook Office 365 集成的会议室。我正在使用 Microsoft Graph 来执行此操作,并且我的解决方案需要一些用于许多功能的扩展属性。
我的问题是: 当我更新所有者日历中某个事件的扩展属性时,更改不会传播到该事件的房间副本。扩展属性仅在房间需要再次接受事件时传播(例如开始日期更改)。
我用来更新事件的一段代码:
Event toUpdate = new Event
{
Id = eventData.EventId,
SingleValueExtendedProperties = new EventSingleValueExtendedPropertiesCollectionPage()
{
new SingleValueLegacyExtendedProperty
{
Id = "String {00020329-0000-0000-c000-000000000046} Name SkipBookingCancellation",
Value = "True"
},
}
};
await calendarService
.Users[calendar.Email]
.Calendar
.Events[toUpdate.Id]
.Request()
.UpdateAsync(toUpdate);
这有点奇怪,因为当我在所有者的日历中创建事件时,它会通过房间正确传播,但是当我更新扩展属性时,它适用于原始事件但不会影响房间的副本(除非房间需要再次接受该事件)。
也许 Graph 缺少 EWS 的旧功能,它通知更新方法以强制再次发送邀请,SendInvitationsOrCancellationsMode.SendToAllAndSaveCopy。