public override void Pre_CreateOrUpgradePlatform()
        {
            NormalizeAllUsers();

            var elevated = (IElevatedUserConfiguration)uiConfiguration;

            var masterElevated = ConfigurationManagerUtils.ConfigurationToMaster(elevated);

            var runtimeElevated = (RuntimeDatabaseConfiguration)elevated.ElevatedRuntimeDatabaseConfiguration();

            bool isAzureDB = ConfigurationManagerUtils.IsDatabaseAzure(masterElevated);

            if (isAzureDB)
            {
                // On the unlikely scenario of an on-premise installation with Azure SQL,
                // we try to minimise the chance of timeouts.
                ConfigurationManagerUtils.QueryTimeout = 300;
            }

            ConfigurationManagerUtils.CheckIfUserHasNecessaryElevatedPermissions(masterElevated);

            if (!isAzureDB)
            {
                ConfigurationManagerUtils.CreateSqlServerCatalogIfDoesntExist(masterElevated, runtimeElevated.Catalog);
            }
            else
            {
                // We will not support automatically creating Azure databases.
                // An appropriate message is displayed.
                ConfigurationManagerUtils.CheckIfAzureDatabaseExists(masterElevated, runtimeElevated.Catalog);
            }

            ConfigurationManagerUtils.GrantUserPermissions((PlatformDatabaseConfiguration)uiConfiguration);
            ConfigurationManagerUtils.AddHubLogRole(runtimeElevated);
        }