我需要按关键字进行搜索,以便只检索包含该关键字的事件。我已经得到了一个解决我的部分问题的答案(过滤主题),但我仍然需要搜索身体预览。
我试图在这段代码中添加搜索(或筛选)参数:
..。
protected override async void OnAppearing()
{
base.OnAppearing();
// Get start and end of week in user's time zone
// I replaced variables below by pure strings on QueryOption <== DOES WORKS FINE
//var startOfWeek = GetUtcStartOfWeekInTimeZone(DateTime.Today, App.UserTimeZone);
//var endOfWeek = startOfWeek.AddDays(30); //Eloir: original AddDays(7)
var queryOptions = new List<QueryOption>
{
//new QueryOption("$search", "BodyPreview:stackoverflow"), <== DOES NOT WORK
new QueryOption("startDateTime", "01/01/2020 00:00:00"),
new QueryOption("endDateTime", "31/12/2020 23:59:59")
};
var timeZoneString =
Xamarin.Forms.Device.RuntimePlatform == Xamarin.Forms.Device.UWP ?
App.UserTimeZone.StandardName : App.UserTimeZone.DisplayName;
// Get the events
var events = await App.GraphClient.Me.CalendarView.Request(queryOptions)
.Header("Prefer", $"outlook.timezone=\"{timeZoneString}\"")
//.Filter("BodyPreview contains 'stackoverflow'") <== DOES NOT WORK EITHER
.Select(e => new
{
e.Subject,
e.BodyPreview,
e.Start,
e.End
})
.OrderBy("start/DateTime")
.Top(50)
.GetAsync();
// Add the events to the list view
CalendarList.ItemsSource = events.CurrentPage.ToList();
}..。此代码是Microsoft docs站点的一部分:用MicrosoftGraph构建Xamarin应用程序。
发布于 2021-09-07 13:25:35
CalendarView仅在指定的时间范围内提供扩展事件的列表,不支持其他筛选。
可以使用me/events端点通过dateTime和subject或bodyPreview进行筛选。
GET https://graph.microsoft.com/v1.0/me/events?$filter=start/dateTime ge '2021-09-06T08:00' and end/dateTime lt '2021-09-30T08:00' and contains(subject,'planning')C#
await App.GraphClient.Me.Events.Request()
.Filter("start/dateTime ge '2021-09-06T08:00' and end/dateTime lt '2021-09-30T08:00' and contains(subject,'planning')")
.Select(e => new
{
e.Subject,
e.BodyPreview,
e.Start,
e.End
})
.OrderBy("start/DateTime")
.Top(50)
.GetAsync();https://stackoverflow.com/questions/69088746
复制相似问题