public IActionResult AppSettings(Config input) { if (ModelState.IsValid && HttpContext.Session.GetString("UserID") != null) { try { if (!string.IsNullOrEmpty(input.ApplicationURL)) { string[] inputUrls = input.ApplicationURL.Split(","); // Easy way to ensure DB URLs always reflect input URLs is to first clear old ones: if (_db.VsAppUrls.Any()) { _db.VsAppUrls.RemoveRange(_db.VsAppUrls); } // Then insert the new ones based on posted input: foreach (string link in inputUrls) { VsAppUrl item = new VsAppUrl() { AppId = input.AppID, RegisteredUrl = link }; _db.VsAppUrls.Add(item); _db.SaveChanges(); } } else { if (_db.VsAppUrls.Any()) { _db.VsAppUrls.RemoveRange(_db.VsAppUrls); } _db.SaveChanges(); } VsApplication app = new VsApplication { Id = input.AppID, Name = input.ApplicationName }; _db.VsApplications.Update(app); _db.SaveChanges(); return(new JsonResult(input)); } catch (Exception e) { ViewBag.Error = e.Message; } } TempData["errors"] = ErrorFeedback(); return(RedirectToAction(nameof(Settings))); }
public IActionResult Settings() { // Check valid login: if (HttpContext.Session.GetString("UserID") != null) { try { // Catch server side validation messages if any: if (TempData["errors"] != null) { ViewBag.ErrorMessages = TempData["errors"]; } VsApplication app = _db.VsApplications.Select(a => a).First(); VsAdmin admin = _db.VsAdmins.Select(a => a).First(); List <string> urls = _db.VsAppUrls.Select(u => u.RegisteredUrl).ToList(); List <string> ignoredIPs = _db.VsVisitors.Where(i => i.IsIgnored.Equals(true)).Select(i => i.Ipaddress).ToList(); int deletionDays = Convert.ToInt32(_config["IpDeletionDays:Days"]); Config settings = new Config { AdminID = admin.Id, Firstname = admin.Firstname, Lastname = admin.Lastname, Email = admin.Email, AppID = app.Id, ApplicationName = app.Name, UrlList = urls, IPList = ignoredIPs, DaysBeforeDeletion = deletionDays < 1 ? 1 : deletionDays }; return(View(settings)); } catch (Exception e) { Console.Write(e.Message); } return(View()); } return(RedirectToAction("Login", "Home")); }