using FlexJobApi.Core; using Furion.DatabaseAccessor; using Furion.FriendlyException; 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 MenuSaveCommandHandler( IRepository menuRep) : IRequestHandler { private readonly IRepository menuRep = menuRep; /// public async Task Handle(MenuSaveCommand request, CancellationToken cancellationToken) { var menu = request.Id.HasValue ? await menuRep.AsQueryable().FirstOrDefaultAsync(it => it.Id == request.Id, cancellationToken) : new Menu(); if (menu == null) throw Oops.Oh(EnumUserErrorCodeType.s100, "菜单"); request.Adapt(menu); var result = request.Id == null ? await menuRep.InsertNowAsync(menu, cancellationToken: cancellationToken) : await menuRep.UpdateNowAsync(menu, cancellationToken: cancellationToken); return menu.Id; } } }