public ActionResult Roles(string id) { RoleSitePermissionViewModel Vm = new RoleSitePermissionViewModel(); Vm.DivisionId = string.Join(",", (_RolesDivisionService.GetRolesDivisionList(id).Select(m => m.DivisionId.ToString()))); Vm.SiteId = string.Join(",", (_RolesSiteService.GetRolesSiteList(id).Select(m => m.SiteId.ToString()))); Vm.RoleId = id; return(View("RolesSiteAndDivision", Vm)); }
public ActionResult Roles(string id) { RoleSitePermissionViewModel Vm = new RoleSitePermissionViewModel(); Vm.DivisionId = string.Join(",", (from p in db.RolesDivision where p.RoleId == id select p.DivisionId.ToString())); Vm.SiteId = string.Join(",", (from p in db.RolesSite where p.RoleId == id select p.SiteId.ToString())); Vm.RoleId = id; return(View("RolesSiteAndDivision", Vm)); }
public ActionResult Roles(RoleSitePermissionViewModel vm) { List <int> NewDivisionIds = new List <int>(); List <int> NewSiteIds = new List <int>(); if (!string.IsNullOrEmpty(vm.DivisionId)) { NewDivisionIds = vm.DivisionId.Split(',').Select(Int32.Parse).ToList(); } if (!string.IsNullOrEmpty(vm.SiteId)) { NewSiteIds = vm.SiteId.Split(',').Select(Int32.Parse).ToList(); } var NewDivisionForRoles = from p in NewDivisionIds select new RolesDivisionViewModel { DivisionId = p, RoleId = vm.RoleId }; var NewSiteForRoles = from p in NewSiteIds select new RolesSiteViewModel { SiteId = p, RoleId = vm.RoleId }; var ExistingDivisionsForRoles = _RolesDivisionService.GetRolesDivisionList(vm.RoleId).ToList(); var ExistingSiteForRoles = _RolesSiteService.GetRolesSiteList(vm.RoleId).ToList(); var DivisionPendingToUpdate = (from p in NewDivisionForRoles join t in ExistingDivisionsForRoles on new { x = p.RoleId, y = p.DivisionId } equals new { x = t.RoleId, y = t.DivisionId } into table from left in table.DefaultIfEmpty() where left == null select p.DivisionId).ToList(); var DivisionPendingToDelete = (from p in ExistingDivisionsForRoles join t in NewDivisionForRoles on new { x = p.RoleId, y = p.DivisionId } equals new { x = t.RoleId, y = t.DivisionId } into table from right in table.DefaultIfEmpty() where right == null select p).ToList(); List <RolesDivisionViewModel> vmRolesDiv = new List <RolesDivisionViewModel>(); foreach (int item in DivisionPendingToUpdate) { RolesDivisionViewModel temp = new RolesDivisionViewModel(); temp.RoleId = vm.RoleId; temp.DivisionId = item; vmRolesDiv.Add(temp); } foreach (var item in DivisionPendingToDelete) { _RolesDivisionService.Delete(item.RolesDivisionId); } _RolesDivisionService.CreateRange(vmRolesDiv, User.Identity.Name); var SitePendingToUpdate = (from p in NewSiteForRoles join t in ExistingSiteForRoles on new { x = p.RoleId, y = p.SiteId } equals new { x = t.RoleId, y = t.SiteId } into table from left in table.DefaultIfEmpty() where left == null select p.SiteId).ToList(); var SitePendingToDelete = (from p in ExistingSiteForRoles join t in NewSiteForRoles on new { x = p.RoleId, y = p.SiteId } equals new { x = t.RoleId, y = t.SiteId } into table from right in table.DefaultIfEmpty() where right == null select p).ToList(); List <RolesSiteViewModel> vmRolesSite = new List <RolesSiteViewModel>(); foreach (int item in SitePendingToUpdate) { RolesSiteViewModel temp = new RolesSiteViewModel(); temp.RoleId = vm.RoleId; temp.SiteId = item; vmRolesSite.Add(temp); } _RolesSiteService.CreateRange(vmRolesSite, User.Identity.Name); foreach (var item in SitePendingToDelete) { _RolesSiteService.Delete(item.RolesSiteId); } try { _RolesSiteService.Save(); } catch (Exception ex) { string message = _exception.HandleException(ex); ModelState.AddModelError("", message); return(View("RolesSiteAndDivision", vm)); } //TempData["Validation"] = "Valid"; //return RedirectToAction("UserPermissions", "Menu", new { RoleId = vm.RoleId }); return(RedirectToAction("SiteDivisionSummary", new { SiteId = vm.SiteId, DivisionId = vm.DivisionId, RoleId = vm.RoleId })); }