我在日历上放置了项目(过去),但是FindItems()
调用将返回0结果。
屏幕截图显示为此会议室邮箱安排了所需日期的会议
搜索代码
SearchFilter greaterthanfilter = new SearchFilter.IsGreaterThanOrEqualTo(ItemSchema.DateTimeReceived, start);
SearchFilter lessthanfilter = new
SearchFilter.IsLessThan(ItemSchema.DateTimeReceived, end);
SearchFilter filter = new
SearchFilter.SearchFilterCollection(LogicalOperator.And, greaterthanfilter, lessthanfilter);
ItemView view = new ItemView(100); //TODO: This value needs to be set based on the date range criteria
ExtendedPropertyDefinition prop = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.Appointment, 0x8238, MapiPropertyType.String);
PropertySet psPropset = new PropertySet(BasePropertySet.FirstClassProperties) { AppointmentSchema.Subject, AppointmentSchema.Organizer, prop };
view.PropertySet = psPropset;
view.OrderBy.Add(ItemSchema.DateTimeReceived, Microsoft.Exchange.WebServices.Data.SortDirection.Descending);
view.Traversal = ItemTraversal.Shallow;
findResults = this.exchangeService.FindItems(new FolderId(WellKnownFolderName.Calendar, new Mailbox(address.Address)), filter, view);
通过方法的参数输入开始日期和结束日期。我在那里打破了确保日期
开始 - 2014年1月6日上午12点
结束 - 2014年1月8日上午12点
但findResults
始终为空(计数为0)。
答案 0 :(得分:1)
如果要搜索日历项,则使用DateTimeReceived不是正确的属性。您应该使用AppointmentSchema.Start约会时DateTimeRecieved将在创建约会时表示更多,而不是在计划开始约会时。
如果要根据日期范围枚举日历约会,则应使用FindAppointments http://msdn.microsoft.com/en-us/library/office/dn439786(v=exchg.80).aspx。这里的不同之处在于,定期约会也将得到扩展。
干杯 格伦