예제 #1
0
        public IActionResult StepOne()
        {
            var mysqlHost       = Environment.GetEnvironmentVariable("SP_MYSQL_HOST");
            var mysqlPortString = Environment.GetEnvironmentVariable("SP_MYSQL_PORT");
            var mysqlDb         = Environment.GetEnvironmentVariable("SP_MYSQL_DB");
            var mysqlUser       = Environment.GetEnvironmentVariable("SP_MYSQL_USER");

            var mysqlPort = 3306;

            if (mysqlPortString != null)
            {
                try
                {
                    mysqlPort = Convert.ToInt32(mysqlPortString);
                }
                catch (Exception ex)
                {
                    // Not important if exception fires
                }
            }

            StepOneModel model = new StepOneModel();

            model.MySQLHost         = mysqlHost != null ? mysqlHost : "";
            model.MySQLPort         = mysqlPort != 3306 ? mysqlPort : 3306;
            model.MySQLDatabaseName = mysqlDb != null ? mysqlDb : "";
            model.MySQLUser         = mysqlUser != null ? mysqlUser : "";

            return(View(model));
        }
예제 #2
0
        public IActionResult StepOne(StepOneModel model)
        {
            if (ModelState.IsValid && model != null)
            {
                try
                {
                    string connectionString = "server=" + model.MySQLHost
                                              + ";port=" + model.MySQLPort.ToString()
                                              + ";database=" + model.MySQLDatabaseName
                                              + ";user="******";password="******"CONFIG_FILE");
                        Helpers.ReplaceEnvVariableInFile(fileName, "SP_MYSQL_HOST", model.MySQLHost);
                        Helpers.ReplaceEnvVariableInFile(fileName, "SP_MYSQL_PORT", model.MySQLPort.ToString());
                        Helpers.ReplaceEnvVariableInFile(fileName, "SP_MYSQL_DB", model.MySQLDatabaseName);
                        Helpers.ReplaceEnvVariableInFile(fileName, "SP_MYSQL_USER", model.MySQLUser);
                        Helpers.ReplaceEnvVariableInFile(fileName, "SP_MYSQL_PASS", model.MySQLPassword);

                        GlobalSettings.InitSettingsFromEnvironment();

                        SAMLPortalContext context = new SAMLPortalContext();
                        context.Database.Migrate();

                        // MySQL Step is complete
                        Helpers.ReplaceEnvVariableInFile(fileName, "SP_CONFIG_SETUPASSISTANT_STEP", "2");
                        GlobalSettings.Store("CONFIG_SETUPASSISTANT_STEP", "2");
                        return(Redirect("2"));
                    }
                    else
                    {
                        ModelState.AddModelError(string.Empty, "An unknown error occurred. Please try again.");
                    }
                }
                catch (Exception ex) when(ex is MySqlException)
                {
                    if (ex is MySqlException)
                    {
                        ModelState.AddModelError(string.Empty, ex.Message);
                    }
                    else
                    {
                        ModelState.AddModelError(string.Empty, "An unknown error occurred. Please try again.");
                        throw;
                    }
                }
            }

            return(View(model));
        }