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)); } }
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()); }