Как использовать несколько условий в одном запросе фильтра DASL в C #?(Синтаксис) (для метода advancedSearch ()) - PullRequest
0 голосов
/ 25 сентября 2018

снимок экрана 1: screenshot 1

снимок экрана 2: screenshot 2

ФОН:

В настоящее время я ищу слово в теме письма в надстройке VSTO.Мой синтаксис:

string filter = "urn:schemas:mailheader:subject LIKE \'%" + wordInSubject + "%\'";

, даже работает следующий синтаксис:

string filter = String.Format("\"urn:schemas:mailheader:subject\" >= '{0}'", "ticket");

string filter = String.Format("@SQL=(\"urn:schemas:calendar:dtstart\" >= '{0:g}' " + "AND \"urn:schemas:calendar:dtend\" <= '{1:g}' " + "AND \"urn:schemas:mailheader:subject\" LIKE '%{2}%')", startTime, endTime, wordInSubject);

Однако я также хочу включить сравнение DateTime, когда почта находится между временным диапазоном.

ССЫЛКИ НА ИССЛЕДОВАНИЕ:

документ для нескольких условий

документ с синтаксисом VB

Я пробовал следующие способы, однако они не работают:

string filter = ("urn:schemas:mailheader:subject LIKE \'%" + wordInSubject + "%\'") + ("[Start] >= '" + startTime.ToString("g") + "' + [End] <= '" + endTime.ToString("g") + "'"); 

string filter = ("urn:schemas:mailheader:subject LIKE \'%" + wordInSubject + "%\'") AND ("[Start] >= '" + startTime.ToString("g") + "' AND [End] <= '" + endTime.ToString("g") + "'"); 

Кроме того, во время поиска я читал, что этодолжен начинаться с префикса "@ SQL =" - однако даже это условие выдает ошибку: -

string filter = "@SQL=""urn:schemas:mailheader:subject LIKE \'%" + wordInSubject + "%\'"

ПОСТАНОВКА ЗАДАЧИ: -

Я не ищу конкретно DateTime дело.Но я могу работать только с синтаксисом использования более одного условия в одной строке фильтра (условие любого типа).

ссылка на документацию по методу advancedSearch ()

1 Ответ

0 голосов
/ 25 сентября 2018

Попробуйте следующий запрос, в котором используются имена свойств DASL:

@SQL=("http://schemas.microsoft.com/mapi/proptag/0x0E1D001F" LIKE '%test%') AND ("http://schemas.microsoft.com/mapi/proptag/0x0E060040" > '2017-09-25 00:00:00') AND ("http://schemas.microsoft.com/mapi/proptag/0x0E060040" < '2018-09-25 00:00:00')

Используются ограничения на PR_NORMALIZED_SUBJECT_W (имя DASL http://schemas.microsoft.com/mapi/proptag/0x0E1D001F) и PR_MESSAGE_DELIVERY_TIME (имя DASL http://schemas.microsoft.com/mapi/proptag/0x0E060040).

Имена свойств DASL можно получить в OutlookSpy (нажмите кнопку IMessage, выберите свойство, см. Текстовое поле DASL).

...