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.Application { /// /// 查询字典类别分页列表数据 /// public class GetDictionaryCategoriesQueryHandler( IRepository rep ) : IRequestHandler> { private readonly IRepository rep = rep; public async Task> Handle(GetDictionaryCategoriesQuery request, CancellationToken cancellationToken) { var q = rep.AsQueryable().AsNoTracking() .OrderBy(it => it.Sort).ThenBy(it => it.CreatedTime) .AsQueryable(); if (request.Keywords.IsNotNull()) { q = q.Where(it => it.Code.Contains(request.Keywords) || it.Name.Contains(request.Keywords) || it.Remark.Contains(request.Keywords)); } var result = await q .ProjectToType() .ToPagedListAsync(request.PageModel, cancellationToken); return result; } } }