public RoleSearchResponse SearchRoles(RoleSearchRequest request)
        {
            request = request ?? new RoleSearchRequest();
            var result = new RoleSearchResponse();

            using (var repository = _platformRepository())
            {
                var query = repository.Roles;

                if (request.Keyword != null)
                {
                    query = query.Where(r => r.Name.Contains(request.Keyword));
                }

                result.TotalCount = query.Count();

                var roles = query
                            .OrderBy(r => r.Name)
                            .Skip(request.SkipCount)
                            .Take(request.TakeCount)
                            .Include(r => r.RolePermissions.Select(rp => rp.Permission))
                            .Include(r => r.RolePermissions.Select(rp => rp.Scopes))
                            .ToArray();

                var roleAllPermissionScopes =
                    result.Roles = roles.Select(r => r.ToCoreModel(_permissionScopeService)).ToArray();
            }

            return(result);
        }
Exemple #2
0
        public async Task <RoleSearchResponse> Search(RoleSearchRequest request)
        {
            RoleSearchResponse response = new RoleSearchResponse();

            try
            {
                RefSqlPaging paging = new RefSqlPaging(request.PageIndex, 30);
                RRole[]      roles  = await _roleService.RoleSearch(request.Name, request.Status, request.DepartmentId, paging);

                var departments = await _roleService.DepartmentSearchFromDb(string.Empty, 0, new RefSqlPaging(0, Int32.MaxValue));

                if (roles != null && roles.Length > 0)
                {
                    //    RDepartment[] departments = await _roleService.DepartmentGetFromDb(roles.Select(p => p.Id).ToArray());
                    response.Roles = roles.Select(p => p.ToModel(departments.FirstOrDefault(q => q.Id == p.DepartmentId))).ToArray();
                }
                else
                {
                    response.Roles = new RoleViewModel[0];
                }
                response.Departments = departments.Select(p => p.ToKeyValueTypeStringModel()).ToArray();
                response.SetSucess();
            }
            catch (Exception e)
            {
                response.SetFail(e);
                _logger.LogError(e, e.Message, request);
            }
            return(response);
        }