コード例 #1
0
        public static void ValidateDatabaseCopyActionTask(DatabaseCopy databaseCopy, bool allowInvalidDbCopy, bool fCheckDbReplicated, IConfigDataProvider session, ObjectId rootId, Task.TaskErrorLoggingDelegate writeError, LocalizedString mdbNotUniqueError, LocalizedString?singleDbCopyError, out Server server)
        {
            string databaseName = databaseCopy.DatabaseName;

            server = null;
            Database database = databaseCopy.GetDatabase <Database>();

            DatabaseTasksHelper.CheckDatabaseForCopyTaskImpl(database, fCheckDbReplicated, writeError, singleDbCopyError);
            if (database.Recovery)
            {
                writeError(new InvalidOperationException(Strings.ErrorInvalidOperationOnRecoveryMailboxDatabase(database.Name)), ErrorCategory.InvalidOperation, database.Identity);
            }
            if (databaseCopy.HostServer != null)
            {
                MailboxServerIdParameter serverIdParam = new MailboxServerIdParameter(databaseCopy.HostServer);
                server = databaseCopy.Session.Read <Server>(databaseCopy.HostServer);
                DatabaseTasksHelper.CheckServerObjectForCopyTask(serverIdParam, writeError, server);
                return;
            }
            if (!allowInvalidDbCopy && !databaseCopy.IsHostServerValid)
            {
                writeError(new InvalidOperationException(Strings.ErrorDbCopyHostServerInvalid(databaseCopy.Name)), ErrorCategory.InvalidData, databaseCopy);
            }
        }
コード例 #2
0
 public static void CheckDatabaseForCopyTask(Database database, Task.TaskErrorLoggingDelegate writeError, LocalizedString singleDbCopyError)
 {
     DatabaseTasksHelper.CheckDatabaseForCopyTaskImpl(database, true, writeError, new LocalizedString?(singleDbCopyError));
 }