gpt4 book ai didi

c# - Graph API 日历 View 事件分页

转载 作者:行者123 更新时间:2023-12-05 01:12:15 26 4
gpt4 key购买 nike

我是 Graph API 的新手,需要获取登录用户的日历事件。在此 article 之后,我已经完成了部分工作但我只看到 10 个事件。

//get calendar events
var startTime = DateTime.Today.ToString("s");
var endTime = DateTime.Now.AddDays(7).ToString("s");
var queryOptions = new List<Microsoft.Graph.QueryOption>()
{
new Microsoft.Graph.QueryOption("startDateTime", startTime),
new Microsoft.Graph.QueryOption("endDateTime", endTime)
};
var calendarView = await graphClient.Me.Calendar.CalendarView
.Request(queryOptions)
.GetAsync();
ViewData["Events"] = calendarView;

查看 calenderView 的属性,我可以看到:{[@odata.nextLink, https://graph.microsoft.com/beta/me/calendar/calendarView?startDateTime=2020-06-12T00%3a00%3a00&endDateTime=2020-06-19T12%3a49%3a37& $skip=10]}

我很难理解如何循环浏览页面,以便将所有事件返回到我的 View 中。

我的应用程序是围绕 ASP Core 3.1 C# 和 Graph 3.7.0 和 1.20.1 构建的

非常感谢任何帮助。

最佳答案

10 是默认页面大小,您可以通过在 .GetAsync() 之前添加 .Top(N) 调用来更改它,其中 N 是最大的某个数字1000. 你可能仍然需要寻呼,所以你应该准备好处理它。

使用 Graph .NET SDK 有两种选择。根据您的代码,其中 calendarView 是您最初请求 10 件商品时返回的对象:

自己请求下一页

var nextPage = calendarView.NextPageRequest.GetAsync();

使用SDK的页面迭代器类

PageIterator 类将为您遍历每个页面,因此所有您需要做的是给它一个回调以对每个事件执行某些操作,然后调用 IterateAsync

var pageIterator = PageIterator<Event>.CreatePageIterator(
graphClient, calendarView,
(e) => {
// Called for each event so you can process
// Do something with the event here, add to a list,
// etc.

// Return true to keep iterating. You can
// Return false to stop the iteration before exhausting all
// pages
return true;
}
);
await pageIterator.IterateAsync();

关于c# - Graph API 日历 View 事件分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62344234/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com