EWS マネージ API を使用して、特定の会議室リソースの予定を読み込み、タブレット デバイスで使用できるように WCF 経由で公開しています。
会議開始予定時刻の 15 分後に主催者が特定のアクションを実行しない場合、会議室の予約をキャンセルしたいです。
タブレット デバイスには、イベントを識別するための StoreId プロパティしかないため、次のコードを実装しました。
public bool CancelMeeting(string appointmentId, string roomEmail)
{
try
{
var service = GetExchangeService();
var ai = new AlternateId[1];
ai[0] = new AlternateId();
ai[0].UniqueId = appointmentId;
ai[0].Format = IdFormat.HexEntryId;
ai[0].Mailbox = roomEmail;
ServiceResponseCollection<ConvertIdResponse> cvtresp = service.ConvertIds(ai, IdFormat.EwsId);
var appointment = Appointment.Bind(service, ((AlternateId)cvtresp[0].ConvertedId).UniqueId);
if (appointment.Resources.Count != 0)
appointment.Resources.RemoveAt(0);
appointment.Location = string.Empty;
appointment.Save(SendInvitationsMode.SendOnlyToAll);
return true;
}
catch (Exception ex)
{
return false;
}
}
でも、
if (appointment.Resources.Count != 0)
appointment.Resources.RemoveAt(0);
このコードでは、アポイントメント.リソース.カウントは常に 0 です。この投稿 ( Exchange Web サービスからリソース (部屋) を取得できません)に従って、 EWS に具体的にリソースを含めるように指示する必要があります。Appointment.Bind を使用する場合、どのようにリソースを含めるように指定しますか?