protected override void InternalProcessRecord()
        {
            if (this.server != null)
            {
                this.DismountDatabase();
            }
            this.RemoveSystemMailbox();
            this.RemoveMonitoringMailboxes();
            if (this.copies != null && this.copies.Length == 1)
            {
                base.DataSession.Delete(this.copies[0]);
            }
            base.InternalProcessRecord();
            TDataObject dataObject  = base.DataObject;
            string      name        = dataObject.Name;
            TDataObject dataObject2 = base.DataObject;

            this.WriteWarning(Strings.NeedRemoveDatabaseFileManually(name, dataObject2.EdbFilePath.ToString()));
            DatabaseTasksHelper.RemoveDatabaseFromClusterDB((ITopologyConfigurationSession)base.DataSession, new Task.TaskVerboseLoggingDelegate(base.WriteVerbose), new Task.TaskWarningLoggingDelegate(this.WriteWarning), new Task.TaskErrorLoggingDelegate(base.WriteError), base.DataObject);
        }
 private void RollbackOperation(MailboxDatabase mdb, DatabaseCopy dbCopy, ADSystemMailbox systemMailbox)
 {
     if (mdb == null || dbCopy == null)
     {
         if (systemMailbox != null)
         {
             try
             {
                 base.WriteVerbose(Strings.VerboseDeleteSystemMailbox(systemMailbox.Id.ToString()));
                 this.RecipientSessionForSystemMailbox.Delete(systemMailbox);
             }
             catch (DataSourceTransientException ex)
             {
                 this.WriteWarning(Strings.FailedToDeleteSystemMailbox(systemMailbox.Identity.ToString(), ex.Message));
                 TaskLogger.Trace("Failed to delete System Mailbox {0} when rolling back created database object '{1}'. {2}", new object[]
                 {
                     systemMailbox.Identity,
                     mdb.Identity,
                     ex.ToString()
                 });
             }
             catch (DataSourceOperationException ex2)
             {
                 this.WriteWarning(Strings.FailedToDeleteSystemMailbox(systemMailbox.Identity.ToString(), ex2.Message));
                 TaskLogger.Trace("Failed to delete System Mailbox {0} when rolling back created database object '{1}'. {2}", new object[]
                 {
                     systemMailbox.Identity,
                     mdb.Identity,
                     ex2.ToString()
                 });
             }
         }
         if (dbCopy != null)
         {
             try
             {
                 base.WriteVerbose(Strings.VerboseDeleteDBCopy(dbCopy.Id.ToString()));
                 base.DataSession.Delete(dbCopy);
             }
             catch (DataSourceTransientException ex3)
             {
                 this.WriteWarning(Strings.FailedToDeleteDatabaseCopy(dbCopy.Identity.ToString(), ex3.Message));
                 TaskLogger.Trace("Failed to delete Database Copy {0} when rolling back created database object '{1}'. {2}", new object[]
                 {
                     dbCopy.Identity,
                     mdb.Identity,
                     ex3.ToString()
                 });
             }
             catch (DataSourceOperationException ex4)
             {
                 this.WriteWarning(Strings.FailedToDeleteDatabaseCopy(dbCopy.Identity.ToString(), ex4.Message));
                 TaskLogger.Trace("Failed to delete Database Copy {0} when rolling back created database object '{1}'. {2}", new object[]
                 {
                     dbCopy.Identity,
                     mdb.Identity,
                     ex4.ToString()
                 });
             }
         }
         if (mdb != null)
         {
             try
             {
                 base.WriteVerbose(Strings.VerboseDeleteMDB(mdb.Id.ToString()));
                 base.DataSession.Delete(mdb);
                 DatabaseTasksHelper.RemoveDatabaseFromClusterDB((ITopologyConfigurationSession)base.DataSession, new Task.TaskVerboseLoggingDelegate(base.WriteVerbose), new Task.TaskWarningLoggingDelegate(this.WriteWarning), new Task.TaskErrorLoggingDelegate(base.WriteError), mdb);
             }
             catch (DataSourceTransientException ex5)
             {
                 this.WriteWarning(Strings.FailedToDeleteMailboxDatabase(mdb.Identity.ToString(), ex5.Message));
                 TaskLogger.Trace("Failed to delete Mailbox Database {0} when rolling back. {1}", new object[]
                 {
                     mdb.Identity,
                     ex5.ToString()
                 });
             }
             catch (DataSourceOperationException ex6)
             {
                 this.WriteWarning(Strings.FailedToDeleteMailboxDatabase(mdb.Identity.ToString(), ex6.Message));
                 TaskLogger.Trace("Failed to delete Mailbox Database {0} when rolling back. {1}", new object[]
                 {
                     mdb.Identity,
                     ex6.ToString()
                 });
             }
             catch (ClusterException ex7)
             {
                 this.WriteWarning(Strings.FailedToDeleteMailboxDatabase(mdb.Identity.ToString(), ex7.Message));
                 TaskLogger.Trace("Failed to delete Mailbox Database {0} when rolling back. {1}", new object[]
                 {
                     mdb.Identity,
                     ex7.ToString()
                 });
             }
         }
     }
 }