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);
        }
Ejemplo n.º 2
0
 protected SoftDeletedMailboxRemovalCheck(SoftDeletedRemovalData data, IDirectoryProvider directory)
 {
     this.Data           = data;
     this.targetDatabase = new Lazy <DirectoryDatabase>(new Func <DirectoryDatabase>(this.FetchTargetDatabase));
     this.directory      = directory;
 }
Ejemplo n.º 3
0
 public ItemCountCheck(SoftDeletedRemovalData data, IDirectoryProvider directory) : base(data, directory)
 {
 }
Ejemplo n.º 4
0
 public MoveHistoryCheck(SoftDeletedRemovalData data, LoadBalanceAnchorContext context) : base(data, context.Directory)
 {
     this.context = context;
 }
Ejemplo n.º 5
0
 public DisconnectDateCheck(SoftDeletedRemovalData data, IDirectoryProvider directory, DateTime removalCutoffDate) : base(data, directory)
 {
     this.removalCutoffDate = removalCutoffDate;
 }