EWS FindItems不起作用

时间:2014-05-30 17:49:25

标签: c# exchangewebservices

我在日历上放置了项目(过去),但是FindItems()调用将返回0结果。

enter image description here 屏幕截图显示为此会议室邮箱安排了所需日期的会议

搜索代码

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)。

1 个答案:

答案 0 :(得分:1)

如果要搜索日历项,则使用DateTimeReceived不是正确的属性。您应该使用AppointmentSchema.Start约会时DateTimeRecieved将在创建约会时表示更多,而不是在计划开始约会时。

如果要根据日期范围枚举日历约会,则应使用FindAppointments http://msdn.microsoft.com/en-us/library/office/dn439786(v=exchg.80).aspx。这里的不同之处在于,定期约会也将得到扩展。

干杯 格伦