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 GetDictionaryDatasQueryHandler( IRepository rep ) : IRequestHandler> { private readonly IRepository rep = rep; public async Task> Handle(GetDictionaryDatasQuery request, CancellationToken cancellationToken) { var q = rep.AsQueryable().AsNoTracking() .OrderBy(it => it.Sort).ThenByDescending(it => it.CreatedTime) .Where(it => it.CategoryId == request.CategoryId); if (request.Keywords.IsNotNull()) { q = q.Where(it => it.Code.Contains(request.Keywords) || it.Content.Contains(request.Keywords) || it.Field1.Contains(request.Keywords) || it.Field2.Contains(request.Keywords) || it.Field3.Contains(request.Keywords) || it.Field4.Contains(request.Keywords) || it.Field5.Contains(request.Keywords)); } var result = await q .ProjectToType() .ToPagedListAsync(request.PageModel, cancellationToken); return result; } } }