using FlexJobApi.Core; using Furion.DatabaseAccessor; using Mapster; using MediatR; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.User.Application { /// /// 查询角色分页列表 /// /// public class GetRolesQueryHandler( IRepository rep ) : IRequestHandler> { private readonly IRepository rep = rep; /// public Task> Handle(GetRolesQuery request, CancellationToken cancellationToken) { var q = rep.AsQueryable().AsNoTracking(); if (request.UserType.HasValue) { q = q.Where(it => it.UserType == request.UserType); } if (request.ClientType.HasValue) { q = q.Where(it => it.ClientType == request.ClientType); } var result = q .ProjectToType() .ToPagedListAsync(request.PageModel, cancellationToken); return result; } } }