我正在使用EWS托管API 2.0。我希望将来可以搜索日历以交换约会的主题。

注意事项是:


仅返回与subject =“ test”相匹配的将来约会
仅在未来90天内返回未来的约会


我可以让CalendarView在接下来的90天内返回约会,但无法弄清楚如何使用SearchFilter进行过滤。为了获得最佳性能,我宁愿不返回所有约会然后进行过滤。

我可以使用ItemView和SearchFilter通过Subject过滤约会。但是,这不会过滤掉已经发生的约会。它返回与过滤器匹配的所有内容。

理想情况下,如果可以在SearchFilter中使用CalendarView,但收到错误消息“可能未为CalendarView指定限制和排序顺序”,那将是很好的。

FindItemsResults<Item> findResults = svc().FindItems(fId, filter, cView);


任何帮助都会很棒...谢谢!

最佳答案

我想到了....

像这样使用复合搜索过滤器

        SearchFilter.SearchFilterCollection coll = new SearchFilter.SearchFilterCollection(LogicalOperator.And);
        SearchFilter subjectFilter = new SearchFilter.ContainsSubstring(AppointmentSchema.Subject, "test");
        SearchFilter dateFilter = new SearchFilter.IsGreaterThanOrEqualTo(AppointmentSchema.Start, DateTime.Today);
        coll.Add(subjectFilter);
        coll.Add(dateFilter);

        FindItemsResults<Item> findResults = svc().FindItems(fId, coll, view);

09-03 21:54