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