Reputation: 4084
I am trying to find items from deleted items folder given the items unique id
ItemId id = new ItemId("zTK6edxaI9sb6AAAQKqWHAAA");
SearchFilter.IsEqualTo filter = new SearchFilter.IsEqualTo(ItemSchema.Id, id);
ItemView view = new ItemView(10);
view.PropertySet = new PropertySet(BasePropertySet.FirstClassProperties, EmailMessageSchema.Subject);
FindItemsResults<Item> results = _ExchangeService.FindItems(WellKnownFolderName.DeletedItems, filter, view);
Console.WriteLine(results.TotalCount);
This code returns an exception saying:
Validation failed.
Parameter name: searchFilter
The same code works if I search for a message with Subject.
Upvotes: 18
Views: 19021
Reputation: 854
You don't need to use FindItems if you already know the ItemId
EmailMessage email = EmailMessage.Bind(service, new ItemId(StringItemId));
Upvotes: 40
Reputation: 2183
You cannot search on a ComplexProperty such as the ItemId. I'm assuming that Item.Bind won't work due to the item being moved, which changed the ItemId?
If that's the case, then you'll need to use a SearchFilter on another property. If these are Items that you created via EWS, you could attach a unique Extended Property to each and use that if you need to search for one.
Upvotes: 6