protected void GetAllSecurables() { var securablesAll = new POSAccount.BusinessFactory.RoleRightsBO() .GetSecurableItemsList(); Application["AppSecurables"] = securablesAll; }
public ActionResult RoleRights(string Role = "") { List <POSAccount.ViewModals.Search.LayoutMenuRights> lstMenu = new List <POSAccount.ViewModals.Search.LayoutMenuRights>(); if (!string.IsNullOrWhiteSpace(Role)) { var lstUsers = new POSAccount.BusinessFactory.UsersBO().GetList(); var roleRights = new POSAccount.BusinessFactory.RoleRightsBO() .GetList(Role); var securablesAll = (List <POSAccount.Contract.Securables>)System.Web.HttpContext.Current.Application["AppSecurables"]; var securables = securablesAll.Join(roleRights, sec => sec.SecurableItem, rig => rig.SecurableItem, (sec, rig) => new { a = sec, b = rig }) .Select(x => new POSAccount.Contract.Securables() { SecurableItem = x.a.SecurableItem, GroupID = x.a.GroupID, Description = x.a.Description, ActionType = x.a.ActionType, Link = x.a.Link, Icon = x.a.Icon, Sequence = x.a.Sequence, ParentSequence = x.a.ParentSequence }) .ToList <POSAccount.Contract.Securables>(); var menuItems = securablesAll.Where(x => x.ActionType == "TopMenu") .Select(x => new { securableItem = x.SecurableItem, Icon = x.Icon, GroupId = x.GroupID }).Distinct().ToList(); for (var i = 0; i < menuItems.Count; i++) { POSAccount.ViewModals.Search.LayoutMenuRights item = new POSAccount.ViewModals.Search.LayoutMenuRights(); item.MenuName = menuItems[i].securableItem; item.Icon = menuItems[i].Icon; item.securablesLst = securablesAll.Where(x => x.GroupID == menuItems[i].securableItem && (x.ActionType == "Menu")) .Select(x => new POSAccount.ViewModals.Search.SecurablesRights { SecurableItem = x.SecurableItem, GroupID = x.GroupID, Description = x.Description, ActionType = x.ActionType, Link = x.Link, Icon = x.Icon, hasRight = (securables.Where(j => j.SecurableItem == x.SecurableItem).Count() > 0), Sequence = x.Sequence, ParentSequence = x.ParentSequence, ActionMenus = securablesAll.Where(y => y.GroupID == menuItems[i].securableItem && (y.ActionType == "Action") && y.ParentSequence == x.Sequence) .Select(y => new POSAccount.ViewModals.Search.SecurablesRights { SecurableItem = y.SecurableItem, GroupID = y.GroupID, Description = y.Description, ActionType = y.ActionType, Link = y.Link, Icon = y.Icon, hasRight = (securables.Where(jk => jk.SecurableItem == y.SecurableItem).Count() > 0), Sequence = y.Sequence, ParentSequence = y.ParentSequence }).ToList <POSAccount.ViewModals.Search.SecurablesRights>() }).OrderBy(x => x.ParentSequence).ToList <POSAccount.ViewModals.Search.SecurablesRights>(); if (item.securablesLst.Count > 0) { lstMenu.Add(item); } } ViewBag.RoleCode = Role; } return(View("RoleRights", lstMenu)); }
public ActionResult SaveRights(List <POSAccount.ViewModals.Search.RoleRightsMenu> right) { try { var lstRoleRights = new List <POSAccount.Contract.RoleRights>(); right.Where(r => r.hasRight == true) .ToList() .ForEach(r => lstRoleRights.Add(new Contract.RoleRights { RoleCode = r.RoleCode, SecurableItem = r.SecurableItem })); var result = new POSAccount.BusinessFactory.RoleRightsBO().SaveRoleRights(lstRoleRights); /* new code */ /* * List<POSAccount.ViewModals.Search.LayoutMenu> lstMenu = new List<POSAccount.ViewModals.Search.LayoutMenu>(); * var roleRights = new POSAccount.BusinessFactory.RoleRightsBO() * .GetList(Utility.USERROLE); * * var securablesAll = (List<POSAccount.Contract.Securables>)System.Web.HttpContext.Current.Application["AppSecurables"]; * * var securables = securablesAll.Join(roleRights, * sec => sec.SecurableItem, * rig => rig.SecurableItem, * (sec, rig) => new { a = sec, b = rig }) * .Select(x => new POSAccount.Contract.Securables() * { * SecurableItem = x.a.SecurableItem, * GroupID = x.a.GroupID, * Description = x.a.Description, * ActionType = x.a.ActionType, * Link = x.a.Link, * Icon = x.a.Icon * }) * .ToList<POSAccount.Contract.Securables>(); * * * var menuItems = securablesAll.Where(x => x.ActionType == "TopMenu") * .Select(x => new { securableItem = x.SecurableItem, Icon = x.Icon, GroupId = x.GroupID, Sequence = x.Sequence }).Distinct().ToList().OrderBy(x => x.Sequence).ToList(); * * * * for (var i = 0; i < menuItems.Count; i++) * { * POSAccount.ViewModals.Search.LayoutMenu item = new POSAccount.ViewModals.Search.LayoutMenu(); * item.MenuName = menuItems[i].securableItem; * item.Icon = menuItems[i].Icon; * item.securablesLst = securables.Where(x => x.GroupID == menuItems[i].securableItem) * .ToList<POSAccount.Contract.Securables>(); * * if (item.securablesLst.Count > 0) * { * lstMenu.Add(item); * } * } * Session["SsnUserRights"] = lstMenu; */ /* new code */ } catch (Exception ex) { ModelState.AddModelError("Error", ex.Message); } // return Json(new { success = true, Message = "Role-Rights saved successfully."}); return(RedirectToAction("RoleRights")); }