using FlexJobApi.Core; using Furion.DatabaseAccessor; using Furion.FriendlyException; using Furion.UnifyResult; 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 DeleteMenuCommandHandler( IRepository rep ) : IRequestHandler { private readonly IRepository rep = rep; /// public async Task Handle(DeleteMenuCommand request, CancellationToken cancellationToken) { var entities = await rep.AsQueryable() .Include(it => it.Childrens) .Where(it => request.Ids.Contains(it.Id)) .ToListAsync(cancellationToken); return entities.Any() ? await rep.DeleteNowAsync(entities.Union(entities.SelectMany(it => it.Childrens)), cancellationToken) : 0; } } }