Example #1
0
        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)));
        }
Example #2
0
        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"));
        }