| | |
| | | public async Task<List<GetEnabledElectronSignSettingsQueryResultItem>> Handle(GetEnabledElectronSignSettingsQuery request, CancellationToken cancellationToken) |
| | | { |
| | | var logier = JwtUtils.GetCurrentLogier(); |
| | | var q = rep.AsQueryable().AsNoTracking() |
| | | .Where(it => !it.IsDisabled); |
| | | var q = rep.AsQueryable().AsNoTracking(); |
| | | if (request.All != true) |
| | | { |
| | | q = q.Where(it => !it.IsDisabled); |
| | | } |
| | | if (logier.Type == EnumUserType.Enterprise) |
| | | { |
| | | var accesses = await repEnterpriseElectronSignSetting.AsQueryable() |
| | | .Where(it => it.EnterpriseId == logier.EnterpriseId) |
| | | .Select(it => it.ElectronSignAccess) |
| | | .ToListAsync(); |
| | | q = q.Where(it => accesses.Contains(it.Access)); |
| | | request.EnterpriseId = logier.EnterpriseId; |
| | | } |
| | | return q |
| | | 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; |
| | | } |
| | | } |
| | | } |