Пример #1
0
        public ActionResult GetPlistMenuRoles(GetPlistMenuRoles requestData)
        {
            if (!ModelState.IsValid)
            {
                return(ModelState.ToJsonResult());
            }
            if (requestData.MenuId.HasValue && requestData.MenuId.Value != Guid.Empty)
            {
                var data = AcDomain.GetPlistMenuRoles(requestData);

                Debug.Assert(requestData.Total != null, "requestData.total != null");
                return(this.JsonResult(new MiniGrid <MenuAssignRoleTr> {
                    total = requestData.Total.Value, data = data
                }));
            }
            else
            {
                return(this.JsonResult(new MiniGrid <MenuAssignRoleTr> {
                    total = 0, data = new List <MenuAssignRoleTr>()
                }));
            }
        }
Пример #2
0
        public static IQueryable <MenuAssignRoleTr> GetPlistMenuRoles(this IAcDomain acDomain, GetPlistMenuRoles requestData)
        {
            if (!requestData.MenuId.HasValue)
            {
                throw new ValidationException("menuID为空");
            }
            MenuState menu;

            if (!acDomain.MenuSet.TryGetMenu(requestData.MenuId.Value, out menu))
            {
                throw new ValidationException("意外的菜单标识" + requestData.MenuId);
            }
            var roleMenus = acDomain.PrivilegeSet.Where(a => a.SubjectType == AcElementType.Role && a.ObjectType == AcElementType.Menu).ToList();
            var roles     = acDomain.RoleSet;
            var data      = new List <MenuAssignRoleTr>();

            foreach (var role in roles)
            {
                var roleMenu = roleMenus.FirstOrDefault(a => a.SubjectInstanceId == role.Id && a.ObjectInstanceId == menu.Id);
                if (requestData.IsAssigned.HasValue)
                {
                    if (requestData.IsAssigned.Value)
                    {
                        if (roleMenu == null)
                        {
                            continue;
                        }
                    }
                    else
                    {
                        if (roleMenu != null)
                        {
                            continue;
                        }
                    }
                }
                string   createBy     = null;
                DateTime?createOn     = null;
                Guid?    createUserId = null;
                Guid     id;
                bool     isAssigned;
                string   orientation         = null;
                string   privilegeConstraint = null;
                if (roleMenu != null)
                {
                    createBy            = roleMenu.CreateBy;
                    createOn            = roleMenu.CreateOn;
                    createUserId        = roleMenu.CreateUserId;
                    id                  = roleMenu.Id;
                    isAssigned          = true;
                    orientation         = roleMenu.AcContentType;
                    privilegeConstraint = roleMenu.AcContent;
                }
                else
                {
                    id         = Guid.NewGuid();
                    isAssigned = false;
                }
                data.Add(new MenuAssignRoleTr
                {
                    CreateBy      = createBy,
                    CreateOn      = createOn,
                    CreateUserId  = createUserId,
                    Id            = id,
                    IsAssigned    = isAssigned,
                    AcContentType = orientation,
                    AcContent     = privilegeConstraint,
                    RoleId        = role.Id,
                    CategoryCode  = role.CategoryCode,
                    Icon          = role.Icon,
                    IsEnabled     = role.IsEnabled,
                    MenuId        = requestData.MenuId.Value,
                    Name          = role.Name,
                    SortCode      = role.SortCode
                });
            }
            int pageIndex = requestData.PageIndex;
            int pageSize  = requestData.PageSize;
            var queryable = data.AsQueryable();

            if (!string.IsNullOrEmpty(requestData.Key))
            {
                queryable = queryable.Where(a => a.Name.Contains(requestData.Key) || a.CategoryCode.Contains(requestData.Key));
            }
            requestData.Total = queryable.Count();

            return(queryable.OrderBy(requestData.SortField + " " + requestData.SortOrder).Skip(pageIndex * pageSize).Take(pageSize));
        }
Пример #3
0
        public static IQueryable<MenuAssignRoleTr> GetPlistMenuRoles(this IAcDomain acDomain, GetPlistMenuRoles requestData)
        {
            if (!requestData.MenuId.HasValue)
            {
                throw new ValidationException("menuID为空");
            }
            MenuState menu;
            if (!acDomain.MenuSet.TryGetMenu(requestData.MenuId.Value, out menu))
            {
                throw new ValidationException("意外的菜单标识" + requestData.MenuId);
            }
            var roleMenus = acDomain.PrivilegeSet.Where(a => a.SubjectType == AcElementType.Role && a.ObjectType == AcElementType.Menu).ToList();
            var roles = acDomain.RoleSet;
            var data = new List<MenuAssignRoleTr>();
            foreach (var role in roles)
            {
                var roleMenu = roleMenus.FirstOrDefault(a => a.SubjectInstanceId == role.Id && a.ObjectInstanceId == menu.Id);
                if (requestData.IsAssigned.HasValue)
                {
                    if (requestData.IsAssigned.Value)
                    {
                        if (roleMenu == null)
                        {
                            continue;
                        }
                    }
                    else
                    {
                        if (roleMenu != null)
                        {
                            continue;
                        }
                    }
                }
                string createBy = null;
                DateTime? createOn = null;
                Guid? createUserId = null;
                Guid id;
                bool isAssigned;
                string orientation = null;
                string privilegeConstraint = null;
                if (roleMenu != null)
                {
                    createBy = roleMenu.CreateBy;
                    createOn = roleMenu.CreateOn;
                    createUserId = roleMenu.CreateUserId;
                    id = roleMenu.Id;
                    isAssigned = true;
                    orientation = roleMenu.AcContentType;
                    privilegeConstraint = roleMenu.AcContent;
                }
                else
                {
                    id = Guid.NewGuid();
                    isAssigned = false;
                }
                data.Add(new MenuAssignRoleTr
                {
                    CreateBy = createBy,
                    CreateOn = createOn,
                    CreateUserId = createUserId,
                    Id = id,
                    IsAssigned = isAssigned,
                    AcContentType = orientation,
                    AcContent = privilegeConstraint,
                    RoleId = role.Id,
                    CategoryCode = role.CategoryCode,
                    Icon = role.Icon,
                    IsEnabled = role.IsEnabled,
                    MenuId = requestData.MenuId.Value,
                    Name = role.Name,
                    SortCode = role.SortCode
                });
            }
            int pageIndex = requestData.PageIndex;
            int pageSize = requestData.PageSize;
            var queryable = data.AsQueryable();
            if (!string.IsNullOrEmpty(requestData.Key))
            {
                queryable = queryable.Where(a => a.Name.Contains(requestData.Key) || a.CategoryCode.Contains(requestData.Key));
            }
            requestData.Total = queryable.Count();

            return queryable.OrderBy(requestData.SortField + " " + requestData.SortOrder).Skip(pageIndex * pageSize).Take(pageSize);
        }
Пример #4
0
        public ActionResult GetPlistMenuRoles(GetPlistMenuRoles requestData)
        {
            if (!ModelState.IsValid)
            {
                return ModelState.ToJsonResult();
            }
            if (requestData.MenuId.HasValue && requestData.MenuId.Value != Guid.Empty)
            {
                var data = AcDomain.GetPlistMenuRoles(requestData);

                Debug.Assert(requestData.Total != null, "requestData.total != null");
                return this.JsonResult(new MiniGrid<MenuAssignRoleTr> { total = requestData.Total.Value, data = data });
            }
            else
            {
                return this.JsonResult(new MiniGrid<MenuAssignRoleTr> { total = 0, data = new List<MenuAssignRoleTr>() });
            }
        }