2016-10-28 2 views
0

Я хочу получать вложения из электронных писем, хранящихся в общей папке на нашем сервере Exchange 2010 Server, и после сохранения вложений в файлы я хочу отметить электронные письма как «завершенные».Как установить элементы в «завершенные» с помощью EWS

Легко получить список писем, и свойство TaskSchema.IsComplete работает как предназначенные для фильтрации результатов поиска: («posteingang» является общей папкой я хочу найти)

FindItemsResults<Item> findItemResults; 
    ItemView    view = new ItemView(50); 

    findItemResults = service.findItems(posteingang.getId(), 
             new SearchFilter.SearchFilterCollection(
              LogicalOperator.And, 
              new SearchFilter.ContainsSubstring(ItemSchema.Subject, "example"),             
              new SearchFilter.IsNotEqualTo(TaskSchema.IsComplete, true) 
             ), 
             view); 

     service.loadPropertiesForItems(findItemResults, PropertySet.FirstClassProperties); 
     for (Item item : findItemResults) { 

       EmailMessage msg = (EmailMessage) item; 
       msg.setIsRead(true); 
       msg.setCategories(SL_DARVIN); 
       msg.setImportance(Importance.Low); 
       msg.update(ConflictResolutionMode.AlwaysOverwrite); 

     } 

Однако, когда он приходит к той части, где я хочу пометить письмо как полное, я понятия не имею, как это сделать. Кастинг item к task не будет работать :-(

Кто-нибудь есть идея

PS: Примеры кода в Java, но благодаря API EWS они должны быть практически идентичны в C#.

ответ

0

Вы должны быть в состоянии пометить его как полный, используя расширенные свойства, например, что-то вроде

 ExtendedPropertyDefinition PidTagFlagStatus = new ExtendedPropertyDefinition(0x1090, MapiPropertyType.Integer); 
     ExtendedPropertyDefinition PidTagFlagCompleteTime = new ExtendedPropertyDefinition(0x1091, MapiPropertyType.SystemTime); 
     ExtendedPropertyDefinition PidLidTaskComplete = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.Task, 0x811C,MapiPropertyType.Boolean);    
     ExtendedPropertyDefinition PidLidCommonEnd = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.Common, 0x8517, MapiPropertyType.SystemTime); 
     ExtendedPropertyDefinition PidLidTaskStatus = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.Task, 0x8101, MapiPropertyType.Integer); 
     ExtendedPropertyDefinition PidLidPercentComplete = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.Task, 0x8102, MapiPropertyType.Double); 
     ExtendedPropertyDefinition TaskDateCompleted = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.Task, 0x810F, MapiPropertyType.SystemTime); 
     ExtendedPropertyDefinition PidTagFollowupIcon = new ExtendedPropertyDefinition(0x1095, MapiPropertyType.Integer); 


     Message.SetExtendedProperty(PidTagFlagStatus, 0x00000001); 
     Message.SetExtendedProperty(PidTagFlagCompleteTime, DateTime.Now); 
     Message.SetExtendedProperty(PidLidTaskComplete, true); 
     Message.SetExtendedProperty(PidLidCommonEnd, DateTime.Now); 
     Message.SetExtendedProperty(PidLidTaskStatus, 2); 
     Message.SetExtendedProperty(PidLidPercentComplete, 1); 
     Message.SetExtendedProperty(TaskDateCompleted, DateTime.Now); 
     Message.SetExtendedProperty(PidTagFollowupIcon, 3); 
     Message.Update(ConflictResolutionMode.AlwaysOverwrite);