| | |
| | | /// 电子签配置查询处理器 |
| | | /// </summary> |
| | | public class ElectronSignSettingQueryHandler( |
| | | IRepository<ElectronSignSetting> rep |
| | | IRepository<ElectronSignSetting> rep, |
| | | IRepository<EnterpriseElectronSignSetting> repEnterpriseElectronSignSetting |
| | | ) : |
| | | IRequestHandler<GetEnabledElectronSignSettingsQuery, List<GetEnabledElectronSignSettingsQueryResultItem>> |
| | | { |
| | | private readonly IRepository<ElectronSignSetting> rep = rep; |
| | | private readonly IRepository<EnterpriseElectronSignSetting> repEnterpriseElectronSignSetting = repEnterpriseElectronSignSetting; |
| | | |
| | | /// <summary> |
| | | /// 查询已启用的电子签配置 |
| | |
| | | /// <param name="request"></param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | public Task<List<GetEnabledElectronSignSettingsQueryResultItem>> Handle(GetEnabledElectronSignSettingsQuery request, CancellationToken cancellationToken) |
| | | public async Task<List<GetEnabledElectronSignSettingsQueryResultItem>> Handle(GetEnabledElectronSignSettingsQuery request, CancellationToken cancellationToken) |
| | | { |
| | | return rep.AsQueryable().AsNoTracking() |
| | | .Where(it => !it.IsDisabled) |
| | | var logier = JwtUtils.GetCurrentLogier(); |
| | | var q = rep.AsQueryable().AsNoTracking(); |
| | | if (request.All != true) |
| | | { |
| | | q = q.Where(it => !it.IsDisabled); |
| | | } |
| | | if (logier.Type == EnumUserType.Enterprise) |
| | | { |
| | | request.EnterpriseId = logier.EnterpriseId; |
| | | } |
| | | var models = await q |
| | | .ProjectToType<GetEnabledElectronSignSettingsQueryResultItem>() |
| | | .ToListAsync(); |
| | | if (request.EnterpriseId.HasValue) |
| | | { |
| | | var accesses = await repEnterpriseElectronSignSetting.AsQueryable() |
| | | .Where(it => it.EnterpriseId == request.EnterpriseId) |
| | | .Select(it => it.ElectronSignAccess) |
| | | .ToListAsync(); |
| | | foreach (var model in models) |
| | | { |
| | | model.IsDisabled = !accesses.Contains(model.Access); |
| | | } |
| | | } |
| | | return models; |
| | | } |
| | | } |
| | | } |