private List <NccPermissionDetails> GetSelectedPermissionDetails(List <ModuleViewModel> modules, NccUser user, bool isExtraAllowPermission) { var permissionDetailsList = new List <NccPermissionDetails>(); foreach (var module in modules) { foreach (var adminMenu in module.AdminMenus) { foreach (var item in adminMenu.MenuItems) { if (item.IsChecked) { var pd = new NccPermissionDetails() { Action = item.Action, Controller = item.Controller, ModuleName = module.ModuleName, Name = adminMenu.Name, Order = item.Order, }; if (isExtraAllowPermission) { pd.AllowUser = user; } else { pd.DenyUser = user; } permissionDetailsList.Add(pd); } } } foreach (var webSiteMenu in module.SiteMenus) { foreach (var item in webSiteMenu.MenuItems) { if (item.IsChecked) { var pd = new NccPermissionDetails() { Action = item.Action, Controller = item.Controller, ModuleName = module.ModuleName, Name = webSiteMenu.Name, Order = item.Order }; if (isExtraAllowPermission) { pd.AllowUser = user; } else { pd.DenyUser = user; } permissionDetailsList.Add(pd); } } } } return(permissionDetailsList); }
public ActionResult CreateEditRoles(PermissionViewModel model) { var activeModules = GlobalContext.GetActiveModules(); ViewBag.Modules = activeModules; var permission = new NccPermission(); permission.Description = model.Description; permission.Rank = model.Rank; permission.Group = model.Group; permission.Name = model.Name; permission.Id = model.Id; var removePermissionDetailsIdList = new List <long>(); var addedPermissionDetails = new List <NccPermissionDetails>(); foreach (var item in model.Modules) { foreach (var am in item.AdminMenus) { foreach (var mi in am.MenuItems) { if (mi.IsChecked) { var permissionDetails = new NccPermissionDetails() { Id = mi.Id, ModuleName = item.ModuleName, Name = am.Name, Action = mi.Action, Controller = mi.Controller, PermissionId = permission.Id }; permission.PermissionDetails.Add(permissionDetails); if (permission.Id > 0 && permissionDetails.Id == 0) { addedPermissionDetails.Add(permissionDetails); } } else { if (mi.Id > 0) { removePermissionDetailsIdList.Add(mi.Id); } } } } foreach (var sm in item.SiteMenus) { foreach (var mi in sm.MenuItems) { if (mi.IsChecked) { var permissionDetails = new NccPermissionDetails() { Id = mi.Id, ModuleName = item.ModuleName, Name = sm.Name, Action = mi.Action, Controller = mi.Controller, PermissionId = permission.Id }; permission.PermissionDetails.Add(permissionDetails); if (permission.Id > 0 && permissionDetails.Id == 0) { addedPermissionDetails.Add(permissionDetails); } } else { if (mi.Id > 0) { removePermissionDetailsIdList.Add(mi.Id); } } } } } var(res, message) = _nccPermissionService.SaveOrUpdate(permission, addedPermissionDetails, removePermissionDetailsIdList); if (res) { TempData["SuccessMessage"] = message; return(RedirectToAction("CreateEditRoles")); } else { ViewBag.ErrorMessage = message; } return(View(model)); }