Пример #1
0
        public IActionResult Database(ExternalDatabaseViewModel model)
        {
            //prevent start wizard if already passed
            if (!bool.Parse(configuration["FirstRun"]))
            {
                return(View("Error", ALREADY_PASSED_MESSAGE));
            }

            try
            {
                using (SqlConnection connection = new SqlConnection(model.ConnectionString))
                {
                    try
                    {
                        connection.Open();
                        if (connection.State == ConnectionState.Open)
                        {
                            dynamic json = ReadConfig();
                            json.DataBase.Enable        = true;
                            json.DataBase.UseInternalDb = false;
                            json.DataBase.ExternalDbConnectionString = model.ConnectionString;
                            WriteConfig(json);
                            configuration.Reload();

                            SystemController.ReadConfig();
                            SystemController.ConnectToDB();

                            return(RedirectToAction("DatabaseCheck"));
                        }
                        else
                        {
                            ModelState.AddModelError("",
                                                     "Unable to connect to the database. Check the connection string.");
                            return(View("DatabaseExternal", model));
                        }
                    }
                    catch (SqlException ex)
                    {
                        ModelState.AddModelError("", "Unable to connect to the database. " + ex.Message);
                        return(View("DatabaseExternal", model));
                    }
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", "Unable to connect to the database. " + ex.Message);
                return(View("DatabaseExternal", model));
            }
        }
Пример #2
0
        public IActionResult Database(string id)
        {
            if (!bool.Parse(configuration["FirstRun"]))
            {
                return(View("Error", ALREADY_PASSED_MESSAGE));
            }

            if (id == "None")
            {
                dynamic json = ReadConfig();
                json.DataBase.Enable = false;
                WriteConfig(json);
                configuration.Reload();

                SystemController.ReadConfig();
                SystemController.ConnectToDB();

                return(RedirectToAction("Gateway"));
            }
            if (id == "Builtin")
            {
                dynamic json = ReadConfig();
                json.DataBase.Enable        = true;
                json.DataBase.UseInternalDb = true;
                WriteConfig(json);
                configuration.Reload();

                SystemController.ReadConfig();
                SystemController.ConnectToDB();

                return(RedirectToAction("DatabaseCheck"));
            }
            if (id == "External")
            {
                return(View("DatabaseExternal", new ExternalDatabaseViewModel
                {
                    ConnectionString = configuration["DataBase:ExternalDbConnectionString"]
                }));
            }

            return(View());
        }