diff options
Diffstat (limited to 'Decompiler/Gestor.Application.Servicos/PermissaoArquivoDigitalServico.cs')
| -rw-r--r-- | Decompiler/Gestor.Application.Servicos/PermissaoArquivoDigitalServico.cs | 181 |
1 files changed, 181 insertions, 0 deletions
diff --git a/Decompiler/Gestor.Application.Servicos/PermissaoArquivoDigitalServico.cs b/Decompiler/Gestor.Application.Servicos/PermissaoArquivoDigitalServico.cs new file mode 100644 index 0000000..f48019c --- /dev/null +++ b/Decompiler/Gestor.Application.Servicos/PermissaoArquivoDigitalServico.cs @@ -0,0 +1,181 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Gestor.Application.Helpers; +using Gestor.Application.Servicos.Generic; +using Gestor.Infrastructure.UnitOfWork.Generic; +using Gestor.Infrastructure.UnitOfWork.Logic; +using Gestor.Model.API; +using Gestor.Model.Common; +using Gestor.Model.Domain.Common; +using Gestor.Model.Domain.Generic; +using Gestor.Model.Domain.Seguros; + +namespace Gestor.Application.Servicos; + +public class PermissaoArquivoDigitalServico : BaseServico +{ + public async Task<List<PermissaoArquivoDigital>> SavePermiss(List<PermissaoArquivoDigital> permissao, List<PermissaoArquivoDigital> prev) + { + int tries = 3; + base.Sucesso = true; + List<PermissaoArquivoDigital> permissaoOriginal = permissao; + List<PermissaoArquivoDigital> prevOriginal = prev; + return await Task.Run(delegate + { + while (tries > 0) + { + permissao = permissaoOriginal; + prev = prevOriginal; + new List<Diferenca>(); + List<RegistroLog> logs = new List<RegistroLog>(); + try + { + UnitOfWork unitOfWork = Instancia.Commited; + try + { + permissao.ForEach(delegate(PermissaoArquivoDigital x) + { + PermissaoArquivoDigital val = ((IEnumerable<PermissaoArquivoDigital>)prev).FirstOrDefault((Func<PermissaoArquivoDigital, bool>)((PermissaoArquivoDigital y) => ((DomainBase)y).Id == ((DomainBase)x).Id)); + if (val == null || val.Consultar != x.Consultar || val.Excluir != x.Excluir || val.Incluir != x.Incluir) + { + if (val == null) + { + logs.Add(CreateLog(((DomainBase)x.Usuario).Id, ((DomainBase)x).GetValorOriginal(), (TipoTela)43, (TipoAcao)0)); + } + else + { + logs.Add(CreateLog(((DomainBase)x.Usuario).Id, ((DomainBase)x).Compare(((DomainBase)val).GetValorOriginal()), (TipoTela)43, (TipoAcao)1)); + } + x = ((((DomainBase)x).Id == 0L) ? unitOfWork.PermissaoArquivoDigitalRepository.SaveOrUpdate(x) : unitOfWork.PermissaoArquivoDigitalRepository.Merge(x)); + } + }); + SaveLog(logs, unitOfWork); + ((GenericUnitOfWork)unitOfWork).Commit(); + return permissao; + } + finally + { + if (unitOfWork != null) + { + ((IDisposable)unitOfWork).Dispose(); + } + } + } + catch (Exception e) + { + tries = Registrar(e, (TipoErro)258, tries, new { permissao, prev }); + } + } + return permissaoOriginal; + }); + } + + public async Task<List<PermissaoArquivoDigital>> PermissArquivoDigital(Usuario usuario) + { + int tries = 3; + return await Task.Run(delegate + { + while (tries > 0) + { + try + { + UnitOfWork read = Instancia.Read; + try + { + return read.PermissaoArquivoDigitalRepository.FindByUsuario(((DomainBase)usuario).Id); + } + finally + { + ((IDisposable)read)?.Dispose(); + } + } + catch (Exception e) + { + tries = Registrar(e, (TipoErro)84, tries, usuario); + } + } + return new List<PermissaoArquivoDigital>(); + }); + } + + public async Task<PermissaoArquivoDigital> VerificarPermissao(Usuario usuario, TipoArquivoDigital tela) + { + //IL_001e: Unknown result type (might be due to invalid IL or missing references) + //IL_001f: Unknown result type (might be due to invalid IL or missing references) + int tries = 3; + return await Task.Run((Func<PermissaoArquivoDigital>)delegate + { + //IL_004a: Unknown result type (might be due to invalid IL or missing references) + //IL_001b: Unknown result type (might be due to invalid IL or missing references) + while (tries > 0) + { + try + { + UnitOfWork read = Instancia.Read; + try + { + return read.PermissaoArquivoDigitalRepository.FindByPermissao(((DomainBase)usuario).Id, tela); + } + finally + { + ((IDisposable)read)?.Dispose(); + } + } + catch (Exception e) + { + tries = Registrar(e, (TipoErro)85, tries, new { usuario, tela }); + } + } + return (PermissaoArquivoDigital)null; + }); + } + + public PermissaoArquivoDigital BuscarPermissao(Usuario usuario, TipoArquivoDigital tela) + { + //IL_0063: Unknown result type (might be due to invalid IL or missing references) + //IL_0017: Unknown result type (might be due to invalid IL or missing references) + //IL_0021: Unknown result type (might be due to invalid IL or missing references) + //IL_0026: Unknown result type (might be due to invalid IL or missing references) + //IL_002d: Unknown result type (might be due to invalid IL or missing references) + //IL_002e: Unknown result type (might be due to invalid IL or missing references) + //IL_0034: Unknown result type (might be due to invalid IL or missing references) + //IL_003b: Unknown result type (might be due to invalid IL or missing references) + //IL_0042: Unknown result type (might be due to invalid IL or missing references) + //IL_004a: Expected O, but got Unknown + int num = 3; + while (num > 0) + { + try + { + UnitOfWork read = Instancia.Read; + try + { + PermissaoArquivoDigital val = read.PermissaoArquivoDigitalRepository.FindByPermissao(((DomainBase)usuario).Id, tela); + if (val == null) + { + return new PermissaoArquivoDigital + { + Usuario = usuario, + Tela = tela, + Consultar = true, + Excluir = true, + Incluir = true + }; + } + return val; + } + finally + { + ((IDisposable)read)?.Dispose(); + } + } + catch (Exception e) + { + num = Registrar(e, (TipoErro)85, num, new { usuario, tela }); + } + } + return null; + } +} |