2017-01-18 24 views
0

Мы пытаемся создать событие с использованием EWS, который является частью кода миграции. Существует хорошо известная проблема, когда мы не можем установить организатор события, который является оригинальным, вот сценарий;EWS создает событие с оригинальным организатором

  1. Пользователь А переносимые на пользователь B
  2. Пользователя А имеют 30 событий в календаре
  3. Из этих 30 он 20 приглашенных событий, где А участник и 10 событий, которые создаются пользователь А (т. е. пользователь A является организатором)
  4. Когда мы переносим их, используя нижеприведенный код, все события создаются с использованием А как органайзера. Что является актуальной проблемой

    Назначение встречи = новое Назначение (exchangeSevice);

    appointment.MimeContent = new MimeContent("UTF-8", System.IO.File.ReadAllBytes(@"c:\A\test.mime")); 
    //appointment.MimeContent = ; 
    // Set the properties on the appointment object to create the appointment. 
    appointment.Subject = "Tennis lesson with invite 22222"; 
    appointment.Body = "Focus on backhand this week."; 
    appointment.Start = DateTime.Now.AddDays(2); 
    appointment.End = appointment.Start.AddHours(1); 
    appointment.Location = "Tennis club"; 
    appointment.ReminderDueBy = DateTime.Now; 
    
    Attendee attendee = new Attendee("[email protected]"); 
    appointment.RequiredAttendees.Add(attendee); 
    
    Mailbox mailbox = new Mailbox(); 
    mailbox.Address = "[email protected]"; 
    
    // Save the appointment to your calendar. 
    appointment.Save(new FolderId(WellKnownFolderName.Calendar, mailbox), SendInvitationsMode.SendToAllAndSaveCopy); 
    
    // Verify that the appointment was created by using the appointment's item ID. 
    Item item = Item.Bind(exchangeSevice, appointment.Id, new PropertySet(ItemSchema.Subject)); 
    

Проблема объясняется здесь Microsoft;

https://blogs.msdn.microsoft.com/webdav_101/2011/09/28/howto-set-the-organizer-of-a-meeting-on-the-calendar-of-an-attendee-using-ews/

Я не уверен, что именно этот пункт пытается сказать;

Если вы решили создать собрание с использованием MIME, используйте для использования MIME/VCALENDAR METHOD: PUBLISH вместо REQUEST. Проблема в том, что есть другие свойства, которые необходимо установить. Нет документации или рекомендаций относительно того, что все нужно будет установить или если методология может работать во всех случаях. Кроме того, вы можете заставить его работать надежно на данный момент, однако, возможно, он не будет работать так, как ожидалось, в будущих обновлениях Exchange.

Может ли кто-нибудь помочь в достижении моего требования о создании события с помощью другого органайзера? Есть ли шанс, что я могу это сделать?

ответ

0

Что вы делаете, это не перенос встреч, а создание новых.

Свойство «организатор» доступно только для чтения и не может быть изменено, поэтому вам это не удастся.

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

Горячих выдавать себя за другой пользователь: https://msdn.microsoft.com/en-us/library/office/dd633680(v=exchg.80).aspx

Горячая возможность получить доступ для делегатов: https://msdn.microsoft.com/en-us/library/office/dn641957(v=exchg.150).aspx

0

Именно это я и думал. Но в этом случае единственный клиент, который выразил опасение, заключается в том, что приглашение будет бум в их почтовых ящиках. Так что предположим, сегодня 20 января 2017 года, и есть событие 15 января , которое НАЗАД НАХОДИТСЯ. В этом случае я просто не могу отправить приглашение.

Кроме того, другой вопрос не является необходимым, чтобы приглашались ТОЛЬКО внутренние сотрудники. Могут быть и внешние, кто начнет получать пригласительные письма. Если вы понимаете, что я имею в виду. Таким образом, это решение не может работать.

Что я надеялся, если бы я мог создать программно MeetingRequest, с которым TOO не возможно, но если бы я мог создать MIME элемента MeetingRequest и сохранить его во входящих. Потому что я заметил, что если я приглашу событие, это будет показано в календаре.Очевидно, таким образом мы не можем скопировать статус, независимо от того, совершил ли пользователь это или нет, но по крайней мере это может быть решением. Любое предложение?