0

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 を使用する場合、どのようにリソースを含めるように指定しますか?

4

1 に答える 1