public void ConfirmLegacyReservation(MailboxReplicationProxyClient client) { if (client.ServerVersion[28]) { LegacyReservationStatus legacyReservationStatus = (LegacyReservationStatus)((IMailboxReplicationProxyService)client).IMailbox_ReserveResources(this.reservationId, this.mdbGuid, (int)RemoteReservation.ConvertReservationFlagsToLegacy(this.flags, false)); if (legacyReservationStatus != LegacyReservationStatus.Success) { throw new CapacityExceededReservationException(string.Format("{0}:{1}:{2}", this.serverFQDN, this.mdbGuid, this.flags), 1); } } }
public static RemoteReservation Create(string serverFQDN, NetworkCredential credentials, Guid mailboxGuid, TenantPartitionHint partitionHint, Guid mdbGuid, ReservationFlags flags) { RemoteReservation result; using (MailboxReplicationProxyClient mailboxReplicationProxyClient = MailboxReplicationProxyClient.CreateWithoutThrottling(serverFQDN, credentials, mailboxGuid, mdbGuid)) { Guid reservationID; if (mailboxReplicationProxyClient.ServerVersion[37]) { byte[] partitionHintBytes = (partitionHint != null) ? partitionHint.GetPersistablePartitionHint() : null; reservationID = ((IMailboxReplicationProxyService)mailboxReplicationProxyClient).IReservationManager_ReserveResources(mailboxGuid, partitionHintBytes, mdbGuid, (int)flags); } else if (mailboxReplicationProxyClient.ServerVersion[28]) { reservationID = Guid.NewGuid(); LegacyReservationStatus legacyReservationStatus = (LegacyReservationStatus)((IMailboxReplicationProxyService)mailboxReplicationProxyClient).IMailbox_ReserveResources(reservationID, mdbGuid, (int)RemoteReservation.ConvertReservationFlagsToLegacy(flags, true)); if (legacyReservationStatus != LegacyReservationStatus.Success) { throw new CapacityExceededReservationException(string.Format("{0}:{1}:{2}", serverFQDN, mdbGuid, flags), 1); } } else { reservationID = RemoteReservation.DownlevelReservationId; } result = new RemoteReservation(reservationID, serverFQDN, credentials, mailboxGuid, mdbGuid, flags); } return(result); }