2012-04-25 2 views
3

Кто-нибудь знает, как получить все элементы, помеченные внутри папки «Входящие» с использованием веб-служб Microsoft Exchange?MS Exchange Web-Services: Как получить элементы с набором «Флаг»?

По-видимому, они не находятся ни в папке «Задачи» (хотя они и появляются в Outlook), и у них нет IsReminderSet, установленных на true.

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

var msgsView = new ItemView(100); 
var msgsFilter = new SearchFilter.IsEqualTo(ItemSchema.IsReminderSet, true); 
var flagged = exSvc.FindItems(WellKnownFolderName.Inbox, msgsFilter, msgsView); 

или

var taskView = new ItemView(100); 
var tasks = exSvc.FindItems(WellKnownFolderName.Tasks, taskView); 

не работает.

ответ

0

Я знаю, этот вопрос стар, но я только что нашел список образец кода, который выглядит, как это может сделать трюк (я не проверял это сам еще) источник: http://independentsoft.de/exchangewebservices/tutorial/findmessageswithflag.html

IsEqualTo restriction1 = new IsEqualTo(MessagePropertyPath.FlagStatus, "1"); //FlagStatus.Complete 
    IsEqualTo restriction2 = new IsEqualTo(MessagePropertyPath.FlagStatus, "2"); //FlagStatus.Marked 

    Or restriction3 = new Or(restriction1, restriction2); 

    FindItemResponse response = service.FindItem(StandardFolder.Inbox 
       , MessagePropertyPath.AllPropertyPaths, restriction3); 

for (int i = 0; i < response.Items.Count; i++) 
{ 
    if (response.Items[i] is Message) 
    { 
     Message message = (Message)response.Items[i]; 

     Console.WriteLine("Subject = " + message.Subject); 
     Console.WriteLine("FlagStatus = " + message.FlagStatus); 
     Console.WriteLine("FlagIcon = " + message.FlagIcon); 
     Console.WriteLine("FlagCompleteTime = " + message.FlagCompleteTime); 
     Console.WriteLine("FlagRequest = " + message.FlagRequest); 
     Console.WriteLine("-----------------------------------------------"); 
    } 
}