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 MenuAllQueryHandler : IRequestHandler { private readonly IRepository menuRep; public MenuAllQueryHandler( IRepository menuRep) { this.menuRep = menuRep; } public async Task Handle(MenuAllQuery request, CancellationToken cancellationToken) { var callback = new MenuAllCallback(); callback.Items = await menuRep.AsQueryable() .Include(it => it.Childrens.Where(c => c.Type == EnumMenuType.Menu || c.Type == EnumMenuType.Page || c.Type == EnumMenuType.Modal)) .OrderBy(it => it.Sort).ThenBy(it => it.CreatedTime) .Where(it => it.Type == EnumMenuType.Menu || it.Type == EnumMenuType.Page || it.Type == EnumMenuType.Modal) .ProjectToType() .ToListAsync(cancellationToken); return callback; } } }