Невозможно обновить значение DateTime для начала и конца IEvent Office 365
Я использую DLL-библиотеку Office 365 V2 и пытаюсь обновить значение DateTime для свойств начала и конца IEvent, но не удается обновить событие без каких-либо ошибок.
Мой код:-
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. Пожалуйста, предложите, если я делаю что-то не так здесь. Дайте мне знать, если требуется какая-либо другая информация.
1 ответ
Вместо того, чтобы устанавливать дату и часовой пояс напрямую, мы можем установить свойства Start и End. Пример ниже работает хорошо для меня:
DateTimeTimeZone newStart = new DateTimeTimeZone();
newStart.DateTime= "2016-08-06T19:00:00.0000000";
newStart.TimeZone = "Asia/Kolkata";
DateTimeTimeZone newEnd = new DateTimeTimeZone();
newEnd.DateTime = "2016-08-06T19:30:00.0000000";
newEnd.TimeZone = "Asia/Kolkata";