Example #1
0
        public ActionResult CopyPermissions(CopyRolesViewModel vm)
        {
            if (ModelState.IsValid && vm.FromRoleId != vm.ToRoleId)
            {
                var RolesSites         = new RolesSiteService(_unitOfWork).GetRolesSiteList(vm.FromRoleId);
                var ExistingRolesSites = new RolesSiteService(_unitOfWork).GetRolesSiteList(vm.ToRoleId);

                var PendingToUpdate = from p in RolesSites
                                      join t in ExistingRolesSites on p.RolesSiteId equals t.RolesSiteId into table
                                      from left in table.DefaultIfEmpty()
                                      where left == null
                                      select p;

                foreach (var item in PendingToUpdate)
                {
                    RolesSite site = new RolesSite();
                    site.CreatedBy    = User.Identity.Name;
                    site.CreatedDate  = DateTime.Now;
                    site.ModifiedBy   = User.Identity.Name;
                    site.ModifiedDate = DateTime.Now;
                    site.RoleId       = vm.ToRoleId;
                    site.SiteId       = item.SiteId;
                    site.ObjectState  = Model.ObjectState.Added;
                    new RolesSiteService(_unitOfWork).Create(site);
                }

                var RolesDivisions         = new RolesDivisionService(_unitOfWork).GetRolesDivisionList(vm.FromRoleId);
                var ExistingRolesDivisions = new RolesDivisionService(_unitOfWork).GetRolesDivisionList(vm.ToRoleId);

                var PendingDivisionsToUpdate = from p in RolesDivisions
                                               join t in ExistingRolesDivisions on p.RolesDivisionId equals t.RolesDivisionId into table
                                               from left in table.DefaultIfEmpty()
                                               where left == null
                                               select p;

                foreach (var item in PendingDivisionsToUpdate)
                {
                    RolesDivision division = new RolesDivision();
                    division.CreatedBy    = User.Identity.Name;
                    division.CreatedDate  = DateTime.Now;
                    division.DivisionId   = item.DivisionId;
                    division.ModifiedBy   = User.Identity.Name;
                    division.ModifiedDate = DateTime.Now;
                    division.RoleId       = vm.ToRoleId;
                    division.ObjectState  = Model.ObjectState.Added;
                    new RolesDivisionService(_unitOfWork).Create(division);
                }

                var RolesMenus         = new RolesMenuService(_unitOfWork).GetRolesMenuList(vm.FromRoleId);
                var ExistingRolesMenus = new RolesMenuService(_unitOfWork).GetRolesMenuList(vm.ToRoleId);

                var PendingMenusToUpDate = from p in RolesMenus
                                           join t in ExistingRolesMenus on p.RolesMenuId equals t.RolesMenuId into table
                                           from left in table.DefaultIfEmpty()
                                           where left == null
                                           select p;

                foreach (var item in PendingMenusToUpDate)
                {
                    RolesMenu menu = new RolesMenu();
                    menu.CreatedBy            = User.Identity.Name;
                    menu.CreatedDate          = DateTime.Now;
                    menu.FullHeaderPermission = item.FullHeaderPermission;
                    menu.FullLinePermission   = item.FullLinePermission;
                    menu.MenuId       = item.MenuId;
                    menu.ModifiedBy   = User.Identity.Name;
                    menu.ModifiedDate = DateTime.Now;
                    menu.RoleId       = vm.ToRoleId;
                    menu.ObjectState  = Model.ObjectState.Added;
                    new RolesMenuService(_unitOfWork).Create(menu);
                }

                var RolesActions         = new RolesControllerActionService(_unitOfWork).GetRolesControllerActionList(vm.FromRoleId);
                var ExistingRolesActions = new RolesControllerActionService(_unitOfWork).GetRolesControllerActionList(vm.ToRoleId);

                var PendingRolesActionsToUpdate = from p in RolesActions
                                                  join t in ExistingRolesActions on p.RolesControllerActionId equals t.RolesControllerActionId into table
                                                  from left in table.DefaultIfEmpty()
                                                  where left == null
                                                  select p;


                foreach (var item in PendingRolesActionsToUpdate)
                {
                    RolesControllerAction Actions = new RolesControllerAction();
                    Actions.ControllerActionId = item.ControllerActionId;
                    Actions.CreatedBy          = User.Identity.Name;
                    Actions.CreatedDate        = DateTime.Now;
                    Actions.ModifiedBy         = User.Identity.Name;
                    Actions.ModifiedDate       = DateTime.Now;
                    Actions.RoleId             = vm.ToRoleId;
                    Actions.ObjectState        = Model.ObjectState.Added;
                    new RolesControllerActionService(_unitOfWork).Create(Actions);
                }

                _unitOfWork.Save();

                return(RedirectToAction("Module", "Menu"));
            }

            return(View(vm));
        }
Example #2
0
        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 = new RolesDivisionService(_unitOfWork).GetRolesDivisionList(vm.RoleId).ToList();

            var ExistingSiteForRoles = new RolesSiteService(_unitOfWork).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();



            foreach (int item in DivisionPendingToUpdate)
            {
                RolesDivision temp = new RolesDivision();
                temp.RoleId       = vm.RoleId;
                temp.DivisionId   = item;
                temp.CreatedBy    = User.Identity.Name;
                temp.CreatedDate  = DateTime.Now;
                temp.ModifiedBy   = User.Identity.Name;
                temp.ModifiedDate = DateTime.Now;
                new RolesDivisionService(_unitOfWork).Create(temp);
            }

            foreach (var item in DivisionPendingToDelete)
            {
                new RolesDivisionService(_unitOfWork).Delete(item.RolesDivisionId);
            }



            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();



            foreach (int item in SitePendingToUpdate)
            {
                RolesSite temp = new RolesSite();
                temp.RoleId       = vm.RoleId;
                temp.SiteId       = item;
                temp.CreatedBy    = User.Identity.Name;
                temp.CreatedDate  = DateTime.Now;
                temp.ModifiedBy   = User.Identity.Name;
                temp.ModifiedDate = DateTime.Now;
                new RolesSiteService(_unitOfWork).Create(temp);
            }

            foreach (var item in SitePendingToDelete)
            {
                new RolesSiteService(_unitOfWork).Delete(item.RolesSiteId);
            }


            try
            {
                _unitOfWork.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 }));
        }