public ActionResult GetPlistDsdSetRoles(GetPlistDsdSetRoles requestData) { if (!ModelState.IsValid) { return(ModelState.ToJsonResult()); } DsdSetState dsdSet; if (!AcDomain.DsdSetSet.TryGetDsdSet(requestData.DsdSetId, out dsdSet)) { throw new ValidationException("非法的动态职责分离角色集标识" + requestData.DsdSetId); } var data = new List <DsdSetAssignRoleTr>(); var privilegeType = AcElementType.Role.ToName(); var ssdSetRoles = AcDomain.DsdSetSet.GetDsdRoles(dsdSet); if (requestData.IsAssigned.HasValue) { if (requestData.IsAssigned.Value) { foreach (var ar in ssdSetRoles) { RoleState role; if (!AcDomain.RoleSet.TryGetRole(ar.RoleId, out role)) { throw new AnycmdException("意外的角色标识" + ar.RoleId); } data.Add(new DsdSetAssignRoleTr { DsdSetId = requestData.DsdSetId, IsAssigned = true, RoleId = ar.RoleId, Id = ar.Id, IsEnabled = role.IsEnabled, CategoryCode = role.CategoryCode, Name = role.Name, SortCode = role.SortCode, Icon = role.Icon }); } } else { data.AddRange(from role in AcDomain.RoleSet where ssdSetRoles.All(a => a.RoleId != role.Id) select new DsdSetAssignRoleTr { DsdSetId = requestData.DsdSetId, IsAssigned = false, RoleId = role.Id, CreateOn = null, Id = Guid.NewGuid(), IsEnabled = role.IsEnabled, CategoryCode = role.CategoryCode, Name = role.Name, SortCode = role.SortCode, Icon = role.Icon }); } } else { foreach (var role in AcDomain.RoleSet) { var ar = ssdSetRoles.FirstOrDefault(a => a.RoleId == role.Id); if (ar == null) { data.Add(new DsdSetAssignRoleTr { DsdSetId = requestData.DsdSetId, IsAssigned = false, RoleId = role.Id, CreateOn = null, Id = Guid.NewGuid(), IsEnabled = role.IsEnabled, CategoryCode = role.CategoryCode, Name = role.Name, SortCode = role.SortCode, Icon = role.Icon }); } else { data.Add(new DsdSetAssignRoleTr { DsdSetId = requestData.DsdSetId, IsAssigned = true, RoleId = ar.RoleId, CreateOn = ar.CreateOn, Id = ar.Id, IsEnabled = role.IsEnabled, CategoryCode = role.CategoryCode, Name = role.Name, SortCode = role.SortCode, Icon = role.Icon }); } } } 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)); } var list = queryable.OrderBy(requestData.SortField + " " + requestData.SortOrder).Skip(pageIndex * pageSize).Take(pageSize); return(this.JsonResult(new MiniGrid <DsdSetAssignRoleTr> { total = queryable.Count(), data = list })); }
public ActionResult GetPlistDsdSetRoles(GetPlistDsdSetRoles requestData) { if (!ModelState.IsValid) { return ModelState.ToJsonResult(); } DsdSetState dsdSet; if (!AcDomain.DsdSetSet.TryGetDsdSet(requestData.DsdSetId, out dsdSet)) { throw new ValidationException("非法的动态职责分离角色集标识" + requestData.DsdSetId); } var data = new List<DsdSetAssignRoleTr>(); var privilegeType = AcElementType.Role.ToName(); var ssdSetRoles = AcDomain.DsdSetSet.GetDsdRoles(dsdSet); if (requestData.IsAssigned.HasValue) { if (requestData.IsAssigned.Value) { foreach (var ar in ssdSetRoles) { RoleState role; if (!AcDomain.RoleSet.TryGetRole(ar.RoleId, out role)) { throw new AnycmdException("意外的角色标识" + ar.RoleId); } data.Add(new DsdSetAssignRoleTr { DsdSetId = requestData.DsdSetId, IsAssigned = true, RoleId = ar.RoleId, Id = ar.Id, IsEnabled = role.IsEnabled, CategoryCode = role.CategoryCode, Name = role.Name, SortCode = role.SortCode, Icon = role.Icon }); } } else { data.AddRange(from role in AcDomain.RoleSet where ssdSetRoles.All(a => a.RoleId != role.Id) select new DsdSetAssignRoleTr { DsdSetId = requestData.DsdSetId, IsAssigned = false, RoleId = role.Id, CreateOn = null, Id = Guid.NewGuid(), IsEnabled = role.IsEnabled, CategoryCode = role.CategoryCode, Name = role.Name, SortCode = role.SortCode, Icon = role.Icon }); } } else { foreach (var role in AcDomain.RoleSet) { var ar = ssdSetRoles.FirstOrDefault(a => a.RoleId == role.Id); if (ar == null) { data.Add(new DsdSetAssignRoleTr { DsdSetId = requestData.DsdSetId, IsAssigned = false, RoleId = role.Id, CreateOn = null, Id = Guid.NewGuid(), IsEnabled = role.IsEnabled, CategoryCode = role.CategoryCode, Name = role.Name, SortCode = role.SortCode, Icon = role.Icon }); } else { data.Add(new DsdSetAssignRoleTr { DsdSetId = requestData.DsdSetId, IsAssigned = true, RoleId = ar.RoleId, CreateOn = ar.CreateOn, Id = ar.Id, IsEnabled = role.IsEnabled, CategoryCode = role.CategoryCode, Name = role.Name, SortCode = role.SortCode, Icon = role.Icon }); } } } 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)); } var list = queryable.OrderBy(requestData.SortField + " " + requestData.SortOrder).Skip(pageIndex * pageSize).Take(pageSize); return this.JsonResult(new MiniGrid<DsdSetAssignRoleTr> { total = queryable.Count(), data = list }); }