【发布时间】:2016-08-09 11:03:43
【问题描述】:
我正在使用 Office 365 V2 DLL 并尝试更新 IEvent 的 Start 和 End 属性的 DateTime 值,但它无法在没有任何错误的情况下更新事件。
我的代码:-
try
{
var taskUpdateMeeting = Task<bool>.Run(async () =>
{
bool updateStatus = false;
IEvent meetingToUpdate = await service.Me.Events.GetById(meetingEventId).ExecuteAsync();
if (meetingToUpdate != null)
{
meetingToUpdate = GetUpdatedEvent(meetingToUpdate, meeting, location, phone); // Function to update the IEvent Obj values needed to update
meetingToUpdate.Start.DateTime = "2016-08-06T19:00:00.0000000"; // Sample value to DateTime property
meetingToUpdate.End.DateTime = "2016-08-06T19:30:00.0000000";
meetingToUpdate.Start.TimeZone = "Asia/Kolkata"; // Sample value to TimeZone property
meetingToUpdate.End.TimeZone = "Asia/Kolkata";
if (invitees != null && invitees.Count > 0)
invitees.ForEach((invitee) => meetingToUpdate.Attendees.Add(new Attendee()
{
EmailAddress = new EmailAddress()
{
Name = invitee.Name,
Address = invitee.Email
},
Status = new ResponseStatus()
{
Response = ResponseType.Accepted,
Time = DateTime.Now
}
}));
await meetingToUpdate.UpdateAsync(true);
await meetingToUpdate.SaveChangesAsync();
//await meetingToUpdate.SaveChangesAsync();
//await service.Context.SaveChangesAsync();
updateStatus = true;
}
return updateStatus;
});
Task.WaitAll(taskUpdateMeeting);
updated = taskUpdateMeeting.Result;
}
catch (Exception ex)
{
InsertExceptionLog(userID, username, "UpdateCalendarEvent Excp -> " + ex.GetType(), ex.Message, ex.InnerException != null ? ex.InnerException.ToString() : null, ex.ToString() + ex.StackTrace);
updated = false;
}
唯一的问题是开始和结束时间。调用 UpdateAsync 方法时,所有其他属性都会正确更新。 最初,会议与更新的 TimeZone 属性处于同一时区。 如果我在这里做错了什么,请提出建议。如果需要任何其他信息,请告诉我。
【问题讨论】:
-
我建议安装 Fiddler 并通过网络捕获 API 请求。在对 API 进行故障排除时,这通常对我最有用。
标签: office365 adal office365api outlook-restapi office365-restapi