- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
背景:
我正在使用 Microsoft Exchange Web 服务托管 API 2.0。我正在尝试搜索日历文件夹并返回满足以下条件的所有约会项目:
我得出的结论是,由于我需要过滤的不仅仅是我需要使用的日期 FindItems()而不是 FindAppoinments() .(如果有误,请纠正我。)FindItems() 的缺点是它只返回重复系列的主人,我需要自己分解事件。我正在毫无问题地分解大师,但是在我的测试中遇到了 FindItems() 搜索重复的方式的问题。如果整个系列在我的搜索范围内的某个时间开始,它似乎只会返回循环系列的主人。因此,如果有人为下一年每天设置了一个循环系列,而我在下个月搜索日历,则 FindItems() 不会给出任何迹象表明在该范围内发生了一个循环系列。
TLDR:
给定一个包含循环系列的日历,该系列的每日频率从 2014 年 1 月 1 日开始到 2014 年 1 月 30 日结束。如何使用过滤日期范围为 1/10/2014 - 1/20/2014 的 FindItems() 返回该系列的循环主数据?
我的代码
// A search collection that contains all of the search conditions.
List<SearchFilter> masterSearchFilterCollection = new List<SearchFilter>();
masterSearchFilterCollection.Add(new SearchFilter.IsEqualTo(ItemSchema.ItemClass, "IPM.Appointment"));
masterSearchFilterCollection.Add(new SearchFilter.IsEqualTo(AppointmentSchema.Sensitivity, Sensitivity.Normal)); //No Private items
//masterSearchFilterCollection.Add(new SearchFilter.ContainsSubstring(AppointmentSchema.Categories, "Test"));
List<SearchFilter> dateRangeSearchFilterCollection = new List<SearchFilter>();
dateRangeSearchFilterCollection.Add(new SearchFilter.IsGreaterThanOrEqualTo(AppointmentSchema.Start, searchStartDateTime));
dateRangeSearchFilterCollection.Add(new SearchFilter.IsLessThanOrEqualTo(AppointmentSchema.Start, searchEndDateTime));
masterSearchFilterCollection.Add(new SearchFilter.SearchFilterCollection(LogicalOperator.And, dateRangeSearchFilterCollection));
SearchFilter searchFilter = new SearchFilter.SearchFilterCollection(LogicalOperator.And, masterSearchFilterCollection);
ItemView view = new ItemView(pageSize, initialOffset);
view.PropertySet = GetPrimaryProperties();
FindItemsResults<Item> results = Service.FindItems(Folder, searchFilter, view);
foreach(Appointment item in results)
{
if (item.AppointmentType == AppointmentType.RecurringMaster)
{
// Calendar item is a recurring master item for a recurring series.
// Loop through all occurrences of the master here
}
else
{
// Calendar item is not part of a recurring series.
}
}
最佳答案
约翰,
为了找到您的定期主约会,您需要使用 FindAppointments()
方法。在此方法中指定开始和结束日期将允许您查看跨越该日期范围的任何定期约会。然后,您可以通过检查这些约会的敏感度和类别属性来过滤您的约会
找到符合条件的约会后,检查 AppointmentType
属性以确定下一步要做什么。如果是 Occurrence 或 Exception,那么您可以使用 Appointment.BindToRecurringMaster()
方法访问您的循环主控。这是一个例子:
switch (calendarItem.AppointmentType)
{
case AppointmentType.RecurringMaster:
// Nothing to do here since you are already on the recurring master
break;
case AppointmentType.Single:
// This is not a recurring series
break;
case AppointmentType.Occurrence:
// We need to get to the recurring master
Appointment recurringMaster = Appointment.BindToRecurringMaster(service, calendarItem.Id);
break;
case AppointmentType.Exception:
// We need to get to the recurring master
Appointment recurringMaster = Appointment.BindToRecurringMaster(service, calendarItem.Id);
break;
}
现在您已经有了对循环主控的引用,您可以像以前一样遍历这些事件。
希望对您有所帮助。
关于exchangewebservices - 如何使用 FindItems() 获取在某个日期范围内开始的一次或多次重复出现的所有重复系列的经常性母版?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22464784/
在收件箱文件夹中,我只有 5 封电子邮件(如图所示,4 封未读,1 封已读)。 此外,在每个搜索文件夹中,例如未读邮件、跟进等。我有很多邮件(超过 1,000 封),最旧的是日期为 2011 年(收到
背景: 我正在使用 Microsoft Exchange Web 服务托管 API 2.0。我正在尝试搜索日历文件夹并返回满足以下条件的所有约会项目: 具有正常的敏感性 具有“测试”类别 在特定日期范
我在 onCreateOptionsMenu() 的选项菜单上更改某些属性时卡住了。看起来 findItem() 返回 null,尽管我很确定对菜单项的引用是正确的。我的代码如下所示: @Ov
我找不到解决方案请帮忙 工具: public class VentasActivity extends ActionBarActivity implements NavigationDrawe
我正在使用 SearchFilter 集合来限制请求返回到使用 EWS 的 Exchange 2010 邮箱的电子邮件。 我连接服务和打开邮箱都没有问题。 问题是我的 searchFilter 被忽略
我想为我的菜单项添加onMenuItemClickListener。问题是,当我尝试在 onCreateOptionsMenu() 之外访问 menu.findItem(R.id.*) 时,我总是收到
我在我的 View 上使用 OrderBy 调用 EWS FindItems() 方法。如果我使用各种 ItemSchema.* 值(例如 ItemSchema.DisplayTo、ItemSchem
我正在使用 FindItem 调用从 Exchange Web 服务 (EWS) 获取项目(约会)。获取的属性是项目 ID 和 EffectiveRights。 EffectiveRights 属性通
这是我用于检索日历项目的 SOAP FindItem 调用: en-US
这是我用于检索日历项目的 SOAP FindItem 调用: en-US
我正在尝试实现Java客户端,它将使用EWS协议(protocol)与邮件服务器进行通信。所以我决定使用这个EWS API . 现在我尝试从邮箱获取项目,它运行良好,但是当我添加一些SearchFil
我正在尝试使用函数 QTreeWidget.findItems 来查找完全匹配的项(该项目名为“Things”)我看到一个使用这个... Qt.MatchExactly ... 作为“匹配标志”的示例
我正在从 Android Hive 了解 Android Studio 中的操作栏.不幸的是,我使用 v7 操作栏,而 androidhive 使用内置操作栏,这可能会有所不同。问题出在搜索 View
下面的代码返回零个项目。 EWSService = new ExchangeService(ExchangeVersion.Exchange2010_SP1); EWSServ
在 EWS Managed API 中,您可以: Folder inbox = Folder.Bind(service, WellKnownFolderName.Inbox); inbox.FindI
我正在尝试从 Microsoft Exchange 的联系人文件夹中获取联系人列表。 即使文件夹中有更多项目,结果也只返回 1000 项。 这是我的代码。 FindFoldersResults r =
这是我从 EWS 获取一些日历项目(约会)的代码。但这始终会引发异常。 异常(exception):-该属性不能用于此类限制。 private void GetChangedAppoi
当我的应用程序中发生某些事情时,我试图启用/禁用刷新按钮,但我得到了一个我无法弄清楚的空指针异常。我根据情况将 bool 值 addingRefresh 或 removingRefresh 设置为 t
当我通过 ExchangeService.LoadPropertiesForItems 方法加载多个交换项目的属性时,Exchange 会跳过项目附件的某些属性作为响应: Test app
经过大量调试后,我将复杂的托管 EWS 问题细化为以下两个简单的测试用例。第一个有效,第二个失败: var view = new ItemView(100) { PropertySet = new P
我是一名优秀的程序员,十分优秀!