| | |
| | | using FlexJobApi.Core; |
| | | using Furion.DatabaseAccessor; |
| | | using Furion.FriendlyException; |
| | | using Mapster; |
| | | using MediatR; |
| | | using System; |
| | | using System.Collections.Generic; |
| | |
| | | /// <summary> |
| | | /// 字典类别命令处理器 |
| | | /// </summary> |
| | | public class DictionaryCategoryCommandHandler : |
| | | public class DictionaryCategoryCommandHandler( |
| | | IRepository<DictionaryCategory> rep, |
| | | IRepository<DictionaryData> repDictionaryData |
| | | ) : |
| | | IRequestHandler<DeleteDictionaryCategoryCommand, int>, |
| | | IRequestHandler<SaveDictionaryCategoryCommand, Guid> |
| | | { |
| | | private readonly IRepository<DictionaryCategory> rep = rep; |
| | | private readonly IRepository<DictionaryData> repDictionaryData = repDictionaryData; |
| | | |
| | | /// <summary> |
| | | /// 删除数据字典类别 |
| | | /// </summary> |
| | |
| | | /// <param name="request"></param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | [UnitOfWork] |
| | | public Task<Guid> Handle(SaveDictionaryCategoryCommand request, CancellationToken cancellationToken) |
| | | { |
| | | return request.SaveData<DictionaryCategory, SaveDictionaryCategoryCommand>( |
| | | (q, e, r) => q.Any(it => it.Id != request.Id && it.Code == request.Code), |
| | | 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); |
| | | } |
| | | } |