Как отфильтровать все элементы EWS, исключив из списка те, которые соответствуют идентификаторам
Я хочу иметь возможность применять SearchFilter на основе Item Id, когда я нахожу все элементы в выбранных папках.
Я могу легко получить все элементы, а затем с помощью linq применить предложение where, как
(w => !uniqueItemIdList.Contains(w.Id.UniqueId))
Но проблема в том, что это будет после того, как он вытащил тысячи почтовых отправлений, а не во время первоначального поиска предметов.
Моя цель состоит в том, чтобы вытащить все электронные письма, скопировать их в базу данных и затем извлечь только те письма, которые я еще не скопировал, исключив электронные письма с соответствующими уникальными идентификаторами.
Пока что все указывает на то, что это невозможно, и что я могу искать только по отдельным полям, таким как FolderId = "..." или по теме, содержащей "...", без упоминания списка или исключения.
Любая помощь приветствуется.
1 ответ
ItemId не является поисковым свойством, поэтому то, что вы пытаетесь сделать с помощью SearchFilter, не будет работать. SyncFolderItems https://msdn.microsoft.com/en-us/library/office/aa563967(v=exchg.150).aspx разрешает список исключений на основе ItemId (но я думаю, что для большого количества элементов это не так масштабировать) более простым решением было бы просто использовать SearchFilter, основанный на дате создания элемента.