【问题标题】:Unable to Update DateTime value for Start and End of IEvent Office 365无法更新 IEvent Office 365 的开始和结束日期时间值
【发布时间】: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


【解决方案1】:

我们可以设置 StartEnd 属性,而不是直接设置日期和时区。下面的示例很适合我:

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";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多