2016-01-08 2 views
-1

Когда пользователь создает встречу непосредственно в календаре конференц-зала, поле организатора устанавливается как имя комнаты (не имеет пользователя, создавшего собрание). Возможно ли получить имя пользователя, создавшего собрание, с использованием EWS 2010 ?.EWS: Как я могу узнать, кто создал встречу в календаре конференц-залов напрямую?

ответ

1

Если вы проверяете свойства расширенного отправителя, которые должны показывать имя создателя (в то время как отправка по имени будет именем почтового ящика), например.

Mailbox MeetingRoom = new Mailbox("[email protected]"); 
FindItemsResults<Appointment> appts = service.FindAppointments(new FolderId(WellKnownFolderName.Calendar,MeetingRoom),new CalendarView(DateTime.Now,DateTime.Now.AddMonths(1),1000)); 
ExtendedPropertyDefinition PR_SENDER_EMAIL_ADDRESS_W = new ExtendedPropertyDefinition(0x0C1F,MapiPropertyType.String); 
ExtendedPropertyDefinition PR_SENDER_ADDRTYPE_W = new ExtendedPropertyDefinition(0x0C1E,MapiPropertyType.String); 
PropertySet psProps = new PropertySet(); 
psProps.Add(PR_SENDER_ADDRTYPE_W); 
psProps.Add(PR_SENDER_EMAIL_ADDRESS_W); 
if(appts.Items.Count > 0){ 
    service.LoadPropertiesForItems(from Item item in appts select item,psProps); 
    foreach(Appointment apt in appts){ 
     Object SenderAddressType = null; 
     Object SenderAddress = null; 
     if(apt.TryGetProperty(PR_SENDER_ADDRTYPE_W,out SenderAddressType)){ 
      if(apt.TryGetProperty(PR_SENDER_EMAIL_ADDRESS_W,out SenderAddress)){ 
       if(SenderAddressType.ToString() == "EX") 
       { 
        NameResolutionCollection nccol = service.ResolveName(SenderAddress.ToString(),ResolveNameSearchLocation.DirectoryOnly,true); 
        if(nccol.Count == 1){ 
         Console.WriteLine(nccol[0].Mailbox.Address); 
        } 
       } 
       else 
       { 
        Console.WriteLine(SenderAddress); 
       } 
      } 
     } 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^