using FlexJobApi.Core; using Furion.DatabaseAccessor; using Mapster; using MediatR; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.Application { /// /// 数据字典命令处理器 /// public class DictionaryDataCommandHandler : IRequestHandler, IRequestHandler { /// /// 保存数据字典 /// /// /// /// public Task Handle(SaveDictionaryDataCommand request, CancellationToken cancellationToken) { return request.SaveData( it => it.CategoryId == request.CategoryId && it.ParentId == request.ParentId && it.Code == request.Code && it.Content == request.Content && it.Id != request.Id, (entity) => { entity.Path = DbUtils.GetTreeDataPath(request.ParentId, cancellationToken).Result; if (request.Id.HasValue) { DbUtils.UpdateTreeDataChildrenPath( $"{entity.Path}/{entity.Code}/", $"{entity.Path}/{request.Code}/", cancellationToken).Wait(); } request.Adapt(entity); }, cancellationToken); } /// /// 设置数据字典是否禁用 /// /// /// /// public Task Handle(SetDictionaryDataIsDisabledCommand request, CancellationToken cancellationToken) { return request.SetIsDisabled(cancellationToken: cancellationToken); } } }