Получение встреч Exchange по ICalUid?

Итак, я создаю встречи Exchange (2007) с заданным ICalUid:

var app = new Appointment(svc);
app.ICalUid = id;
app.Subject = "Test Appointment";
app.Recurrence = new Recurrence.DailyPattern(DateTime.Now, 3);
app.RequiredAttendees.Add("[email protected]");
app.AllowNewTimeProposal = false;
app.Body = new MessageBody(BodyType.HTML, "This is a <b>Test!</b>");
app.Save();

Позже я хотел бы обновить это назначение, после чего мне нужно найти его через ICalUid.

Тем не менее, кажется, нет никакого способа сделать это? я могу использоватьAppointment.Bind только против идентификатора Exchange, который у меня нет на момент обновления (хранить его крайне непрактично)

Я могу создать новую встречу с тем же ICalUid, который, кажется, ведет себя как обновление, но просит снова Принять / Отклонить вместо того, чтобы просто отображать «Обновление не требуется».

Есть ли правильный способ сделать это?

Ответы на вопрос(2)

 22 июл. 2012 г., 10:26
Да, единственный доступный метод поиска - по диапазону дат. Какая контекстная информация о встрече у вас есть, когда вам нужно сделать обновление? Не могли бы вы выполнить поиск по дате, а затем просмотреть результаты, пока не найдете свой идентификатор? Не отлично, я знаю.
 Michael Stum♦22 июл. 2012 г., 09:47
Кажется, что нет никакого способа указать фильтр для UID iCal (или чего-либо еще)

ExchangeService.FindItems искатьAppointment сICalUid - см. пример ниже. Обратите внимание, что у него есть проблема с поиском встреч, которые повторяются.

Увидеть:

http://social.technet.microsoft.com/Forums/fi-FI/exchangesvrdevelopment/thread/26c2f76d-93bb-4a70-80e8-cf6cc9c66254

Жаль, что вы не используете Exchange 2010, так какgetICalUID() в EWS Managed API 1.1.5.

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

http://blogs.msdn.com/b/mstehle/archive/2009/09/02/ews-uid-not-always-the-same-for-orphaned-instances-of-the-same-meeting.aspx

http://social.technet.microsoft.com/Forums/en-US/exchangesvrdevelopment/thread/09883d57-e2a2-4db6-8800-9b9d251d6231/

http://social.technet.microsoft.com/Forums/pl-PL/exchangesvrdevelopment/thread/5b67df1d-0a15-40cf-aa5e-ca811087d16d

http://social.technet.microsoft.com/Forums/en/exchangesvrdevelopment/thread/a9148747-b51c-4b86-b942-27c1e87f4440

http://social.technet.microsoft.com/Forums/fi-FI/exchangesvrdevelopment/thread/1bab6e2c-805c-4999-babf-cc7c4aa0d669

http://social.technet.microsoft.com/Forums/pl-PL/exchangesvrdevelopment/thread/09057b7d-45d7-48df-8ca1-df119637ff60

 Michael Stum♦20 июл. 2012 г., 08:00
Этого тоже не происходит :( С помощью OutlookSpy я также не вижу iCalUid ни в одном из полей, но это не должно много значить. Тем не менее, Exchange, похоже, его не находит.
 17 июл. 2012 г., 21:51
Я думаю, вы должны закодировать его как Base64 - это упомянуто в одной из ссылок.social.technet.microsoft.com/Forums/en/exchangesvrdevelopment/…
 20 июл. 2012 г., 11:53
Вот альтернативный пример, который выполняет FindItems.archive.cnblogs.com/a/2173625
 20 июл. 2012 г., 11:43
Не могли бы вы расширить свой пример кода немного больше? например покажите нам, как выглядит ваш идентификатор .... вы просто каждый раз генерируете уникальный GUID? Используете ли вы строку GUID, которая включает в себя тире? или ты их раздеваешь? Может быть, вы должны указать только HEX-коды для идентификатора при создании встречи, например, 000C020304etc. Наконец, посмотрите на это ....d-push.sourcearchive.com/documentation/1.5.3-1/… .... может дать некоторые подсказки.
 Michael Stum♦17 июл. 2012 г., 21:48
Спасибо, это, похоже, не находит его, даже если я удаляю повторение :( В каком формате должен быть ICalUid? Я раньше использовал Guid, но это выдает исключение вGetObjectIdStringFromUid метод. Использование шестнадцатеричной строки типа012345 не выдает исключение, но также не находит назначение.

Ваш ответ на вопрос