BatchRequest是否仅限于一个日历?

时间:2015-11-06 20:34:38

标签: c# calendar google-calendar-api google-api-v3

我在使用BatchRequest时遇到问题,并在C#.NET(MVC 5)中使用Google Calendar Api V3。

以下代码正在运行,但不是我想要的。

ProjectContext db = new ProjectContext ();

foreach (Calendar calendar in db.Calendars.ToList())
{
    BatchRequest br = new BatchRequest(service);

    // This returns events within a specified date range
    List<Event> evts =
        GoogleServiceSingleton.Instance.GetAllEventsWithinTimeSpan(calendar.GoogleID, DateTime.Parse("23-12-2015"), DateTime.Parse("24-12-2015")).ToList();

    foreach (Event e in evts)
    {
        br.Queue<Event>(
                service.Events.Delete(calendar.GoogleID, e.Id),
                (content, error, i, message) =>
                {
                    // Put your callback code here.
                });
    }

    if (!Settings.debug)
    {
        br.ExecuteAsync();
    }
}

我想要的是为所有日历创建BatchRequest。在这种情况下,我的BatchRequest对象在foreach循环之外创建并在内部排队。 foreach完成后,将调用ExecuteAsync。

BatchRequest填充了正确的事件,但在调用ExecuteAsync之后,不会删除任何事件。有人可以告诉我为什么吗?

ProjectContext db = new ProjectContext ();

BatchRequest br = new BatchRequest(service);

foreach (Calendar calendar in db.Calendars.ToList())
{
    List<Event> evts =
        GoogleServiceSingleton.Instance.GetAllEventsWithinTimeSpan(calendar.GoogleID, DateTime.Parse("23-12-2015"), DateTime.Parse("24-12-2015")).ToList();

    foreach (Event e in evts)
    {
        br.Queue<Event>(
                service.Events.Delete(calendar.GoogleID, e.Id),
                (content, error, i, message) =>
                {
                    // Put your callback code here.
                });
    }   
}

if (!Settings.debug)
{
    br.ExecuteAsync();
}

0 个答案:

没有答案