public Result <QueryRolePermissionResult> QueryRolePermission(QueryRolePermissionCriteria criteria) { HandlePaginationAndDirectionValidation(criteria); if (!RolePermissionRepository.SortableFields.Contains(criteria.OrderBy, StringComparer.OrdinalIgnoreCase)) { criteria.OrderBy = string.Empty; } var result = rolePermissionRepository.QueryRolePermission(criteria); return(new Result <QueryRolePermissionResult>(result)); }
public QueryRolePermissionResult QueryRolePermission(QueryRolePermissionCriteria criteria) { if (criteria.Page == null || criteria.PageSize == null) { return(null); } var pageSize = criteria.PageSize.Value; var pageValue = criteria.Page.Value; IQueryable <RolePermissionEntity> queryable = this.context.RolePermissions; if (!string.IsNullOrEmpty(criteria.RoleId)) { queryable = queryable.Where(our => our.RoleId.Equals(criteria.RoleId)); } if (!string.IsNullOrEmpty(criteria.RoleName)) { queryable = queryable.Where(our => our.RoleName.Equals(criteria.RoleName)); } if (criteria.OrganizationId.HasValue) { queryable = queryable.Where(our => our.OrganizationId.Equals(criteria.OrganizationId)); } if (!string.IsNullOrWhiteSpace(criteria.OrderBy)) { var descending = criteria.Direction.ToUpper() == "DESC"; var orderByField = criteria.OrderBy.ToLowerInvariant(); switch (orderByField) { case SortIsDefault: queryable = queryable.OrderBy(r => !r.IsDefault, descending); break; case SortDisplayName: queryable = queryable.OrderBy(r => r.DisplayName, descending); break; default: queryable = queryable.OrderBy(r => r.DisplayName, false); break; } } var count = queryable.Count(); var page = (pageValue - 1) * pageSize; var views = queryable .Skip(page) .Take(pageSize) .ToList(); var results = views.Select(p => this.mapper.Map <RolePermissionListView>(p)) .ToList(); return(new QueryRolePermissionResult { Pagination = new PaginationModel(count, pageValue, pageSize), Result = results }); }