using FlexJobApi.Core; using Furion.DatabaseAccessor; using Furion.FriendlyException; using Mapster; using MediatR; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.CommonServer.Application { /// /// 字典类别命令处理器 /// public class DictionaryCategoryCommandHandler( IRepository rep, IRepository repDictionaryData ) : IRequestHandler, IRequestHandler { private readonly IRepository rep = rep; private readonly IRepository repDictionaryData = repDictionaryData; /// /// 删除数据字典类别 /// /// /// /// public Task Handle(DeleteDictionaryCategoryCommand request, CancellationToken cancellationToken) { return DbUtils.DeleteData(request, null, cancellationToken); } /// /// 保存数据字典类别 /// /// /// /// [UnitOfWork] public Task Handle(SaveDictionaryCategoryCommand request, CancellationToken cancellationToken) { return request.SaveData( null, it => it.Id != request.Id && it.Code == request.Code, (entity) => { if (request.Id.HasValue && entity.Code != request.Code) { throw Oops.Oh(EnumErrorCodeType.s400, "编号不可修改"); //var data = repDictionaryData.AsQueryable() // .Where(it => it.CategoryId == entity.Id) // .ToList(); //foreach (var item in data) //{ // item.Code = item.Code.Replace($"{entity.Code}-", $"{request.Code}-"); //} } request.Adapt(entity); }, cancellationToken); } } }