protected virtual SoftDeleteMailboxRemovalCheckRemoval GetMailboxRemovalReadiness(NonConnectedMailbox mailbox) { DirectoryIdentity directoryIdentity = DirectoryIdentity.CreateMailboxIdentity(mailbox.Guid, mailbox.OrganizationId, DirectoryObjectType.Mailbox); DirectoryIdentity identity = this.database.Identity; DirectoryDatabase databaseForMailbox; try { databaseForMailbox = this.context.Directory.GetDatabaseForMailbox(directoryIdentity); } catch (RecipientNotFoundException) { return(SoftDeleteMailboxRemovalCheckRemoval.DisallowRemoval("Recipient for mailbox '{0}' and organizationId '{1}' could not be found so removal can not take place", new object[] { directoryIdentity, mailbox.Identity.OrganizationId })); } if (databaseForMailbox == null) { return(SoftDeleteMailboxRemovalCheckRemoval.DisallowRemoval("Could not identify a database for mailbox '{0}' and organizationId '{1}'", new object[] { directoryIdentity, mailbox.Identity.OrganizationId })); } SoftDeletedRemovalData data = new SoftDeletedRemovalData(identity, databaseForMailbox.Identity, directoryIdentity, mailbox.ItemCount, mailbox.DisconnectDate); SoftDeleteMailboxRemovalCheckRemoval result; using (ILoadBalanceService loadBalanceClientForDatabase = this.context.ClientFactory.GetLoadBalanceClientForDatabase(databaseForMailbox)) { result = loadBalanceClientForDatabase.CheckSoftDeletedMailboxRemoval(data); } return(result); }
protected SoftDeletedMailboxRemovalCheck(SoftDeletedRemovalData data, IDirectoryProvider directory) { this.Data = data; this.targetDatabase = new Lazy <DirectoryDatabase>(new Func <DirectoryDatabase>(this.FetchTargetDatabase)); this.directory = directory; }
public ItemCountCheck(SoftDeletedRemovalData data, IDirectoryProvider directory) : base(data, directory) { }
public MoveHistoryCheck(SoftDeletedRemovalData data, LoadBalanceAnchorContext context) : base(data, context.Directory) { this.context = context; }
public DisconnectDateCheck(SoftDeletedRemovalData data, IDirectoryProvider directory, DateTime removalCutoffDate) : base(data, directory) { this.removalCutoffDate = removalCutoffDate; }