我在使用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();
}