Ejemplo n.º 1
0
        public ActionResult GetPlistGroupRoles(GetPlistGroupRoles requestData)
        {
            if (!ModelState.IsValid)
            {
                return(ModelState.ToJsonResult());
            }
            var data = AcDomain.GetPlistGroupRoles(requestData);

            Debug.Assert(requestData.Total != null, "requestData.total != null");
            return(this.JsonResult(new MiniGrid <GroupAssignRoleTr> {
                total = requestData.Total.Value, data = data
            }));
        }
Ejemplo n.º 2
0
        public static IQueryable <GroupAssignRoleTr> GetPlistGroupRoles(this IAcDomain acDomain, GetPlistGroupRoles requestData)
        {
            GroupState group;

            if (!acDomain.GroupSet.TryGetGroup(requestData.GroupId, out group))
            {
                throw new ValidationException("意外的工作组标识" + requestData.GroupId);
            }
            var data = new List <GroupAssignRoleTr>();

            foreach (var role in acDomain.RoleSet)
            {
                var roleGroup = acDomain.PrivilegeSet.FirstOrDefault(a =>
                                                                     a.SubjectType == AcElementType.Role && a.ObjectType == AcElementType.Group &&
                                                                     a.SubjectInstanceId == role.Id && a.ObjectInstanceId == group.Id);
                if (requestData.IsAssigned.HasValue)
                {
                    if (requestData.IsAssigned.Value)
                    {
                        if (roleGroup == null)
                        {
                            continue;
                        }
                    }
                    else
                    {
                        if (roleGroup != null)
                        {
                            continue;
                        }
                    }
                }
                string   createBy     = null;
                DateTime?createOn     = null;
                Guid?    createUserId = null;
                Guid     id;
                bool     isAssigned;
                if (roleGroup != null)
                {
                    createBy     = roleGroup.CreateBy;
                    createOn     = roleGroup.CreateOn;
                    createUserId = roleGroup.CreateUserId;
                    id           = roleGroup.Id;
                    isAssigned   = true;
                }
                else
                {
                    id         = Guid.NewGuid();
                    isAssigned = false;
                }
                data.Add(new GroupAssignRoleTr
                {
                    CategoryCode = role.CategoryCode,
                    CreateBy     = createBy,
                    CreateOn     = createOn,
                    CreateUserId = createUserId,
                    GroupId      = group.Id,
                    Id           = id,
                    IsAssigned   = isAssigned,
                    IsEnabled    = role.IsEnabled,
                    Name         = role.Name,
                    RoleId       = role.Id,
                    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));
            }
            requestData.Total = queryable.Count();

            return(queryable.OrderBy(requestData.SortField + " " + requestData.SortOrder).Skip(pageIndex * pageSize).Take(pageSize));
        }
Ejemplo n.º 3
0
        public static IQueryable<GroupAssignRoleTr> GetPlistGroupRoles(this IAcDomain acDomain, GetPlistGroupRoles requestData)
        {
            GroupState group;
            if (!acDomain.GroupSet.TryGetGroup(requestData.GroupId, out group))
            {
                throw new ValidationException("意外的工作组标识" + requestData.GroupId);
            }
            var data = new List<GroupAssignRoleTr>();
            foreach (var role in acDomain.RoleSet)
            {
                var roleGroup = acDomain.PrivilegeSet.FirstOrDefault(a =>
                    a.SubjectType == AcElementType.Role && a.ObjectType == AcElementType.Group
                    && a.SubjectInstanceId == role.Id && a.ObjectInstanceId == group.Id);
                if (requestData.IsAssigned.HasValue)
                {
                    if (requestData.IsAssigned.Value)
                    {
                        if (roleGroup == null)
                        {
                            continue;
                        }
                    }
                    else
                    {
                        if (roleGroup != null)
                        {
                            continue;
                        }
                    }
                }
                string createBy = null;
                DateTime? createOn = null;
                Guid? createUserId = null;
                Guid id;
                bool isAssigned;
                if (roleGroup != null)
                {
                    createBy = roleGroup.CreateBy;
                    createOn = roleGroup.CreateOn;
                    createUserId = roleGroup.CreateUserId;
                    id = roleGroup.Id;
                    isAssigned = true;
                }
                else
                {
                    id = Guid.NewGuid();
                    isAssigned = false;
                }
                data.Add(new GroupAssignRoleTr
                {
                    CategoryCode = role.CategoryCode,
                    CreateBy = createBy,
                    CreateOn = createOn,
                    CreateUserId = createUserId,
                    GroupId = group.Id,
                    Id = id,
                    IsAssigned = isAssigned,
                    IsEnabled = role.IsEnabled,
                    Name = role.Name,
                    RoleId = role.Id,
                    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));
            }
            requestData.Total = queryable.Count();

            return queryable.OrderBy(requestData.SortField + " " + requestData.SortOrder).Skip(pageIndex * pageSize).Take(pageSize);
        }
Ejemplo n.º 4
0
        public ActionResult GetPlistGroupRoles(GetPlistGroupRoles requestData)
        {
            if (!ModelState.IsValid)
            {
                return ModelState.ToJsonResult();
            }
            var data = AcDomain.GetPlistGroupRoles(requestData);

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