Пример #1
0
        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
            }));
        }
Пример #2
0
        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 });
        }