Exemplo n.º 1
0
        public ActionResult EditAdmins(int adminid, int p, ICollection <AdminLims> AdminLims, int isenable = 0, string password = null)
        {
            Admins admin = adminsService.GetByID(adminid);

            if (ModelState.IsValid)
            {
                admin.Isenable = Convert.ToByte(isenable);
                if (password != null && password != "")
                {
                    admin.Password = password;
                }

                if (AdminLims != null)
                {
                    AdminLims = AdminLims.Where(a => a.LimID != 0).ToList();

                    foreach (AdminLims adminlim in admin.AdminLims.ToArray())
                    {
                        if (!AdminLims.ToList().Exists(a => a.LimID == adminlim.LimID))
                        {
                            admin.AdminLims.Remove(adminlim);
                            adminlimsService.Delete(adminlim.AdminLimID);
                        }
                    }

                    foreach (AdminLims al in AdminLims)
                    {
                        if (admin.AdminLims.ToList().Exists(a => a.LimID == al.LimID))
                        {
                            AdminLims cd = admin.AdminLims.Where(a => a.LimID == al.LimID).FirstOrDefault();
                            cd.IsAdd    = al.IsAdd;
                            cd.IsUpdate = al.IsUpdate;
                            cd.IsDelete = al.IsDelete;
                        }
                        else
                        {
                            al.AdminLimID = Guid.NewGuid();
                            al.AdminID    = admin.AdminID;
                            admin.AdminLims.Add(al);
                        }
                    }
                }

                adminsService.Update(admin);
                adminsService.SaveChanges();

                return(RedirectToAction("Admins", new { p = p }));
            }
            else
            {
                ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists, see your system administrator.");
                ViewBag.pageNumber = p;
                ViewBag.Lims       = limsService.Get().Where(a => a.ParentID == null).OrderBy(a => a.Sort);
                return(View(admin));
            }
        }
        public override void OnActionExecuting(ActionExecutingContext context)
        {
            bool islogin = (context.HttpContext.Session.Contents["IsLogin"] == null) ? false : (bool)context.HttpContext.Session.Contents["IsLogin"];

            if (!islogin)
            {
                context.HttpContext.Session.Add("IsLogin", false);

                RouteValueDictionary redirectTargetDictionary = new RouteValueDictionary();
                redirectTargetDictionary.Add("action", "Login");
                redirectTargetDictionary.Add("controller", "Main");

                context.Result = new RedirectToRouteResult(redirectTargetDictionary);
                return;
            }

            if (IsAuth)
            {
                int adminid = (int)context.HttpContext.Session.Contents["AdminID"];

                if (adminid != 888)
                {
                    string action     = (string)context.RequestContext.RouteData.Values["action"];
                    string controller = (string)context.RequestContext.RouteData.Values["controller"];

                    string ac = action;
                    ac = ac.Replace("AddNo", "Add");
                    ac = ac.Replace("EditNo", "Edit");
                    ac = ac.Replace("Add", "");
                    ac = ac.Replace("Edit", "");
                    ac = ac.Replace("Delete", "");
                    ac = ac.Replace("Result", "");
                    ac = ac.Replace("Export", "");
                    ac = ac.Replace("Sort", "");
                    ac = ac.Replace("Brandphotos", "Brands");
                    ac = ac.Replace("Productphotos", "Products");
                    ac = ac.Replace("Eventphotos", "Events");
                    ac = ac.Replace("details", "");
                    ac = ac.Replace("Upload", "");
                    ac = ac.Replace("FBOrderlist", "");
                    ac = ac.Replace("FBOrderrework", "");
                    ac = ac.Replace("FBOrderregain", "");
                    ac = ac.Replace("IGOrderlist", "");
                    ac = ac.Replace("IGOrderrework", "");
                    ac = ac.Replace("IGOrderregain", "");
                    ac = ac.Replace("YTOrderlist", "");
                    ac = ac.Replace("YTOrderrework", "");
                    ac = ac.Replace("YTOrderregain", "");
                    Lims lim   = limsService.Get().Where(a => a.Key.Contains(controller)).FirstOrDefault();
                    int  limid = limsService.Get().Where(a => a.Key.Contains(ac) && a.ParentID == lim.LimID).Select(a => a.LimID).FirstOrDefault();

                    AdminLims adminlim = adminlimsService.Get().Where(a => a.AdminID == adminid && a.LimID == limid).FirstOrDefault();

                    if (adminlim == null)
                    {
                        context.Result = new RedirectResult("/Error/Validation");
                        return;
                    }

                    if (!adminlim.IsAdd && action.Contains("Add"))
                    {
                        context.Result = new RedirectResult("/Error/Validation");
                        return;
                    }

                    if (!adminlim.IsUpdate && action.Contains("Edit"))
                    {
                        context.Result = new RedirectResult("/Error/Validation");
                        return;
                    }

                    if (!adminlim.IsDelete && action.Contains("Delete"))
                    {
                        context.Result = new RedirectResult("/Error/Validation");
                        return;
                    }
                }
            }

            base.OnActionExecuting(context);
        }