使用Microsoft Graph删除一系列日历事件不包括边界上的“全天”事件

问题描述

我正在尝试使用Microsoft Graph清除一组日历事件。

这是我的过滤器字符串:

start/dateTime ge '2020-10-26T00:00' and end/dateTime le '2020-11-01T23:59'

我注意到在某些情况下,该周日中的任何日历事件都没有在该周删除

在进一步检查时,只有在事件设置了“全天”标志时才会发生这种情况。

因此,当我的活动有开始/结束时间时,它将拾取整个整周内的所有活动。但是,如果(确实发生了)用户将周日事件设置为没有时间范围的“全天”事件,则该事件不会被拾取和删除

这是我当前的删除例程:


   public async Task<bool> DeleteCalendarEvents(SettingsBase oSettings)
    {
        try
        {
            //var oCalendar = await _graphClient.Me.Calendars[oSettings.CalendarID].Request().GetAsync();
            //string strName = oCalendar.Name;

            var oEvents = await _graphClient
                                    .Me
                                    .Calendars[oSettings.CalendarID]
                                    .Events
                                    .Request()
                                    .Select("Start,Subject,Id") // Todo: Is there any point doing this?
                                    .Top(50)
                                    .Filter(oSettings.GetFilterString())
                                    .OrderBy("start/DateTime")
                                    .GetAsync();

            //Program.file.WriteLine($"Calendar {strName}");
            List<Event> listEvents = new List<Event>();

            listEvents.AddRange(oEvents);
            while (oEvents.NextPageRequest != null)
            {
                oEvents = await oEvents.NextPageRequest.GetAsync();
                listEvents.AddRange(oEvents);
            }

            foreach (Event oEvent in listEvents)
            { 
                //Program.file.WriteLine($"Event Data: {oEvent.Start.DateTime} Id: {oEvent.Id} Subject: {oEvent.Subject}");
                await _graphClient.Me.Events[oEvent.Id].Request().DeleteAsync();
            }

            //Program.file.WriteLine($"Count: {listEvents.Count}" + Environment.NewLine);
        }
        catch (Exception ex)
        {
            SimpleLog.Log(ex);
            Console.WriteLine("DeleteCalendarEvents: See error log.");
            return false;
        }

        return true;
    }

我也需要它来考虑这些全天活动,因为我现在正在重复。

我正在VS2019上使用Microsoft Graph 3.2和Visual C#。

注意:最初讨论并回答了here这种删除事件的方法,但是我不知道这种“全天”事件达到极限的故障。


Microsoft Graph 团队中的任何人都在积极寻找需要引起关注的问题吗?谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)