Я использую представление CalendarItemType для извлечения элементов календаря. Единственные элементы, которые меня волнуют, - это те, которые я создал, и я знаю, что они все еженедельные повторяющиеся элементы. Я могу получить каждое отдельное событие, и из любого из них повторяющийся главный элемент, но я хотел бы сузить область моего поиска только теми пунктами, которые соответствуют моему шаблону.
Я пытаюсь использовать свойство Restriction на FindItemType для указания ограничения NotEqualTo с нулевой константой для calenderRecurrenceId. Это вызвало мою просьбу тайм-аут. До сих пор мне не удалось полностью загрузить рекурсии с помощью FindItemType и вам нужно использовать последующий вызов GetItemType, когда я нахожу событие, которое происходит в повторяющейся серии.
Вот код, с которого я начинаю. Код должен работать как с Exchange 2007, так и с Exchange 2010.
var findItemRequest = new FindItemType();
findItemRequest.ParentFolderIds = new DistinguishedFolderIdType[]
{
new DistinguishedFolderIdType()
};
((DistinguishedFolderIdType)findItemequest.ParentFolderIds[0]).Id = DistinguishedFolderIdNameType.calendar;
findItemRequest.Traversal = ItemQueryTraversalType.Shallow;
var itemShapeDefinition = new ItemResponseShapeType(
{
BaseShape = DefaultShapeNamesType.AllProperties;
}
findItemRequest.Item = calenderView;
findItemRequest.ItemShape = itemShapeDefinition;
var findItemResponse = this.esb.FindItem( findItemRequest );
Кроме того, если вы знаете какой-либо хороший источник примеров (помимо тех, что содержатся в MSDN), я бы приветствовал их. Я набираю код другого в экстренной ситуации и стараюсь изучать веб-службы Exchange на лету.