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