コード例 #1
0
        private static bool InitializeDatabase(
            Logger logger)
        {
            DatabaseManagerConfig dbConfig =
                new DatabaseManagerConfig(
                    ApplicationConstants.CONNECTION_STRING,
                    ApplicationConstants.MOBS_DIRECTORY,
                    ApplicationConstants.MAPS_DIRECTORY);
            DatabaseManager dbManager     = new DatabaseManager(dbConfig);
            bool            databaseValid = false;

            if (!dbManager.IsDatabaseValid())
            {
                string constructionResult = "";

                logger.LogInfo("Database invalid. Re-initializing...");

                if (dbManager.ReCreateDatabase(logger, out constructionResult))
                {
                    databaseValid = true;
                }
                else
                {
                    logger.LogError(constructionResult);
                }
            }
            else
            {
                databaseValid = true;
            }

            return(databaseValid);
        }
コード例 #2
0
        public string RecreateDatabase()
        {
            BasicResponse response = new BasicResponse();

            if (RestUtilities.ValidateJSONRequestHasAuthenticatedSession(Session, out response.result) &&
                RestUtilities.ValidateJSONRequestSessionHasAdminOpsLevel(Session, out response.result))
            {
                StringBuilder result = new StringBuilder();
                Logger        logger = new Logger((string message) => { result.AppendLine(message); });

                try
                {
                    string constructionResult      = "";
                    DatabaseManagerConfig dbConfig =
                        new DatabaseManagerConfig(
                            ApplicationConstants.CONNECTION_STRING,
                            ApplicationConstants.MOBS_DIRECTORY,
                            ApplicationConstants.MAPS_DIRECTORY);
                    DatabaseManager dbManager = new DatabaseManager(dbConfig);

                    if (!dbManager.ReCreateDatabase(logger, out constructionResult))
                    {
                        logger.LogError(constructionResult);
                    }
                }
                catch (System.Exception ex)
                {
                    logger.LogError(string.Format("Failed to recreate database: {0}", ex.Message));
                }

                response.result = result.ToString();
            }

            return(JSONUtilities.SerializeJSONResponse <BasicResponse>(response));
        }
コード例 #3
0
        public static PgDatabaseManager Initialize(DatabaseManagerConfig config, params string[] fileNames)
        {
            var result = new PgDatabaseManager(config);

            foreach (var fileName in fileNames)
            {
                result.Load(fileName);
            }

            result.BeginTest();
            return(result);
        }
コード例 #4
0
    public void StartServer()
    {
        if (m_state == eState.stopped)
        {
            DatabaseManagerConfig dbConfig =
                new DatabaseManagerConfig(DBConnectionString, MobDataDirectory, MapDataDirectory);

            // Start initializing the database
            m_state         = eState.starting;
            m_dbInitRequest = new AsyncDatabaseInitializeRequest(dbConfig, m_logger);
            m_dbInitRequest.Execute();
        }
    }
コード例 #5
0
 private PgDatabaseManager(DatabaseManagerConfig config)
     : base(config, new PgDatabaseClient(config.ReuseConnection))
 {
 }
コード例 #6
0
        private static bool RebuildDatabase(Command command)
        {
            bool   success           = true;
            string connection_string = "";
            string maps_directory    = "";
            string mobs_directory    = "";
            Logger logger            = new Logger(Console.Out.WriteLine);

            if (command.HasArgumentWithName("C"))
            {
                connection_string = command.GetTypedArgumentByName <CommandArgument_String>("C").ArgumentValue;
            }
            else
            {
                logger.LogError("RebuildDatabase: Missing expected connection string parameter");
                success = false;
            }

            if (command.HasArgumentWithName("M"))
            {
                mobs_directory = command.GetTypedArgumentByName <CommandArgument_String>("M").ArgumentValue;
            }
            else
            {
                logger.LogError("RebuildDatabase: No mob data directory given");
            }

            if (command.HasArgumentWithName("T"))
            {
                maps_directory = command.GetTypedArgumentByName <CommandArgument_String>("T").ArgumentValue;
            }
            else
            {
                logger.LogError("RoomTemplateParser: No template directory given");
                success = false;
            }

            // Set the optional e-mail account constants
            if (success)
            {
                if (command.HasArgumentWithName("EA"))
                {
                    MailConstants.WEB_SERVICE_EMAIL_ADDRESS =
                        command.GetTypedArgumentByName <CommandArgument_String>("EA").ArgumentValue;
                }

                if (command.HasArgumentWithName("EH"))
                {
                    MailConstants.WEB_SERVICE_EMAIL_HOST =
                        command.GetTypedArgumentByName <CommandArgument_String>("EH").ArgumentValue;
                }

                if (command.HasArgumentWithName("EP"))
                {
                    MailConstants.WEB_SERVICE_EMAIL_PORT =
                        command.GetTypedArgumentByName <CommandArgument_Int32>("EP").ArgumentValue;
                }


                if (command.HasArgumentWithName("EU"))
                {
                    MailConstants.WEB_SERVICE_EMAIL_USERNAME =
                        command.GetTypedArgumentByName <CommandArgument_String>("EU").ArgumentValue;
                }

                if (command.HasArgumentWithName("ED"))
                {
                    MailConstants.WEB_SERVICE_EMAIL_USERNAME =
                        command.GetTypedArgumentByName <CommandArgument_String>("ED").ArgumentValue;
                }
            }

            if (success)
            {
                try
                {
                    string constructionResult      = "";
                    DatabaseManagerConfig dbConfig =
                        new DatabaseManagerConfig(connection_string, mobs_directory, maps_directory);
                    DatabaseManager dbManager = new DatabaseManager(dbConfig);

                    if (!dbManager.ReCreateDatabase(logger, out constructionResult))
                    {
                        logger.LogError(constructionResult);
                    }
                }
                catch (System.Exception ex)
                {
                    logger.LogError(string.Format("Failed to recreate database: {0}", ex.Message));
                }
            }

            return(success);
        }