Когда пользователь создает встречу непосредственно в календаре конференц-зала, поле организатора устанавливается как имя комнаты (не имеет пользователя, создавшего собрание). Возможно ли получить имя пользователя, создавшего собрание, с использованием EWS 2010 ?.EWS: Как я могу узнать, кто создал встречу в календаре конференц-залов напрямую?
-1
A
ответ
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);
}
}
}
}
}