summaryrefslogtreecommitdiff
path: root/Decompiler/Gestor.Application.Servicos.Ferramentas/UsuarioServico.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Decompiler/Gestor.Application.Servicos.Ferramentas/UsuarioServico.cs')
-rw-r--r--Decompiler/Gestor.Application.Servicos.Ferramentas/UsuarioServico.cs317
1 files changed, 317 insertions, 0 deletions
diff --git a/Decompiler/Gestor.Application.Servicos.Ferramentas/UsuarioServico.cs b/Decompiler/Gestor.Application.Servicos.Ferramentas/UsuarioServico.cs
new file mode 100644
index 0000000..1ee95e1
--- /dev/null
+++ b/Decompiler/Gestor.Application.Servicos.Ferramentas/UsuarioServico.cs
@@ -0,0 +1,317 @@
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using Gestor.Application.Helpers;
+using Gestor.Application.Servicos.Generic;
+using Gestor.Common.Security;
+using Gestor.Common.Validation;
+using Gestor.Infrastructure.Mappers;
+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.Ferramentas;
+
+internal class UsuarioServico : BaseServico
+{
+ internal async Task<Usuario> BuscarUsuarioPorId(long id)
+ {
+ int tries = 3;
+ return await Task.Run((Func<Usuario>)delegate
+ {
+ //IL_005c: Unknown result type (might be due to invalid IL or missing references)
+ //IL_0062: Expected O, but got Unknown
+ while (tries > 0)
+ {
+ try
+ {
+ UnitOfWork read = Instancia.Read;
+ try
+ {
+ return read.UsuarioRepository.FindById(id);
+ }
+ finally
+ {
+ ((IDisposable)read)?.Dispose();
+ }
+ }
+ catch (Exception e)
+ {
+ tries = Registrar(e, (TipoErro)130, tries, id);
+ }
+ }
+ return new Usuario();
+ });
+ }
+
+ public async Task<Usuario> Save(Usuario usuario)
+ {
+ int tries = 3;
+ base.Sucesso = true;
+ Usuario usuarioOriginal = usuario;
+ return await Task.Run((Func<Usuario>)delegate
+ {
+ //IL_007d: Unknown result type (might be due to invalid IL or missing references)
+ List<RegistroLog> list = new List<RegistroLog>();
+ while (tries > 0)
+ {
+ usuario = usuarioOriginal;
+ try
+ {
+ UnitOfWork commited = Instancia.Commited;
+ try
+ {
+ Usuario usuario2 = Recursos.Usuario;
+ string text = ((usuario2 != null) ? usuario2.TokenSso : null);
+ Empresa empresa = Recursos.Empresa;
+ string documentoEmpresa = ((empresa != null) ? empresa.Documento : null);
+ if (ValidationHelper.IsNullOrEmpty(text))
+ {
+ Empresa val = commited.EmpresaRepository.FindBySerial(ApplicationHelper.NumeroSerial);
+ string password = usuario.Senha;
+ if (ValidationHelper.IsNotNullOrEmpty(usuario.SenhaAnterior))
+ {
+ if (new Token().AggerDecrypt(usuario.SenhaAnterior).ToUpper().Contains("AGGER@"))
+ {
+ Usuario result = BuscarLogin(usuario.Login).Result;
+ usuario.SenhaAnterior = result.Senha;
+ }
+ password = usuario.SenhaAnterior;
+ }
+ AuthSso result2 = BuscaUsuarioSso(usuario.Login, password, val.Documento).Result;
+ if (result2 == null || result2.Code == 401)
+ {
+ base.Sucesso = false;
+ return usuarioOriginal;
+ }
+ text = result2.Data.Token;
+ documentoEmpresa = val.Documento;
+ }
+ Usuario obj = usuario;
+ long? permissaoAggilizador2;
+ if (usuario.PermissaoAggilizador.HasValue)
+ {
+ long? num = (usuario.PermissaoAggilizador = usuario.PermissaoAggilizador);
+ permissaoAggilizador2 = num;
+ }
+ else
+ {
+ long? num = (usuario.PermissaoAggilizador = 2L);
+ permissaoAggilizador2 = num;
+ }
+ obj.PermissaoAggilizador = permissaoAggilizador2;
+ bool num3 = ((DomainBase)usuario).Id != 0L;
+ if (num3)
+ {
+ list.Add(CreateLog(((DomainBase)usuario).Id, usuario, (TipoTela)16));
+ }
+ usuario = ((((DomainBase)usuario).Id == 0L) ? commited.UsuarioRepository.SaveOrUpdate(usuario) : commited.UsuarioRepository.Merge(usuario));
+ if (!num3)
+ {
+ list.Add(CreateLog(((DomainBase)usuario).Id, ((DomainBase)usuario).GetValorOriginal(), (TipoTela)16, (TipoAcao)0));
+ }
+ SaveLog(list, commited);
+ ((GenericUnitOfWork)commited).Commit();
+ usuario.TokenSso = text;
+ AddOrUpdateUsuarioSso(usuario, documentoEmpresa, usuario.SsoId).Wait();
+ return usuario;
+ }
+ finally
+ {
+ ((IDisposable)commited)?.Dispose();
+ }
+ }
+ catch (Exception e)
+ {
+ tries = Registrar(e, (TipoErro)239, tries, usuario);
+ }
+ }
+ return usuarioOriginal;
+ });
+ }
+
+ public async Task<bool> Delete(Usuario usuario)
+ {
+ int tries = 3;
+ return await Task.Run(delegate
+ {
+ while (tries > 0)
+ {
+ List<RegistroLog> list = new List<RegistroLog>();
+ try
+ {
+ UnitOfWork commited = Instancia.Commited;
+ try
+ {
+ list.Add(CreateLog(((DomainBase)usuario).Id, ((DomainBase)usuario).GetValorOriginal(), (TipoTela)16, (TipoAcao)2));
+ commited.UsuarioRepository.Delete(((DomainBase)usuario).Id);
+ SaveLog(list, commited);
+ ((GenericUnitOfWork)commited).Commit();
+ usuario.TokenSso = Recursos.Usuario.TokenSso;
+ DeleteUsuarioSso(usuario, Recursos.Empresa.Documento).Wait();
+ return true;
+ }
+ finally
+ {
+ ((IDisposable)commited)?.Dispose();
+ }
+ }
+ catch (Exception e)
+ {
+ tries = Registrar(e, (TipoErro)240, tries, usuario);
+ }
+ }
+ return false;
+ });
+ }
+
+ public async Task<List<PermissaoAggilizador>> BuscarPermissaoAggilizador()
+ {
+ return await Task.Run(delegate
+ {
+ //IL_0025: Unknown result type (might be due to invalid IL or missing references)
+ //IL_002a: Unknown result type (might be due to invalid IL or missing references)
+ //IL_0032: Unknown result type (might be due to invalid IL or missing references)
+ //IL_0042: Expected O, but got Unknown
+ //IL_0043: Unknown result type (might be due to invalid IL or missing references)
+ //IL_0048: Unknown result type (might be due to invalid IL or missing references)
+ //IL_0050: Unknown result type (might be due to invalid IL or missing references)
+ //IL_0060: Expected O, but got Unknown
+ //IL_0061: Unknown result type (might be due to invalid IL or missing references)
+ //IL_0066: Unknown result type (might be due to invalid IL or missing references)
+ //IL_006e: Unknown result type (might be due to invalid IL or missing references)
+ //IL_007e: Expected O, but got Unknown
+ try
+ {
+ UnitOfWork read = Instancia.Read;
+ try
+ {
+ return read.UsuarioRepository.PermissaoAggilizador();
+ }
+ finally
+ {
+ ((IDisposable)read)?.Dispose();
+ }
+ }
+ catch (Exception)
+ {
+ return new List<PermissaoAggilizador>
+ {
+ new PermissaoAggilizador
+ {
+ Id = 1L,
+ Descricao = "ADMINISTRADOR"
+ },
+ new PermissaoAggilizador
+ {
+ Id = 2L,
+ Descricao = "NORMAL"
+ },
+ new PermissaoAggilizador
+ {
+ Id = 3L,
+ Descricao = "LIMITADO"
+ }
+ };
+ }
+ });
+ }
+
+ public async Task<Usuario> BuscarLogin(string login)
+ {
+ int tries = 3;
+ return await Task.Run((Func<Usuario>)delegate
+ {
+ //IL_00c9: Unknown result type (might be due to invalid IL or missing references)
+ //IL_00cf: Expected O, but got Unknown
+ //IL_004a: Unknown result type (might be due to invalid IL or missing references)
+ //IL_0051: Expected O, but got Unknown
+ while (tries > 0)
+ {
+ try
+ {
+ UnitOfWork read = Instancia.Read;
+ try
+ {
+ Empresa val = read.EmpresaRepository.FindBySerial(ApplicationHelper.NumeroSerial);
+ AuthSso result = VerificaUsuarioSso(login, val.Documento).Result;
+ if (result == null || result.Code == 401)
+ {
+ return new Usuario();
+ }
+ Usuario val2 = read.UsuarioRepository.FindUsuario(login);
+ return (result.Code == 404) ? val2 : CustomMap.FromUserSso(val2, result.Data.User);
+ }
+ finally
+ {
+ ((IDisposable)read)?.Dispose();
+ }
+ }
+ catch (Exception e)
+ {
+ tries = Registrar(e, (TipoErro)134, tries, login);
+ }
+ }
+ return new Usuario();
+ });
+ }
+
+ public async Task AddCentralSegurado(long id, bool update = true)
+ {
+ await Task.Run(delegate
+ {
+ UnitOfWork commited = Instancia.Commited;
+ try
+ {
+ commited.ClienteRepository.AddCentralSegurado(id, update);
+ }
+ finally
+ {
+ ((IDisposable)commited)?.Dispose();
+ }
+ });
+ }
+
+ public async Task<Usuario> BuscaUsuarioInicial(string usuario, string senha)
+ {
+ return await Task.Run((Func<Usuario>)delegate
+ {
+ //IL_0017: Unknown result type (might be due to invalid IL or missing references)
+ //IL_007c: Unknown result type (might be due to invalid IL or missing references)
+ //IL_0083: Expected O, but got Unknown
+ UnitOfWork read = Instancia.Read;
+ try
+ {
+ Empresa val = read.EmpresaRepository.FindBySerial(ApplicationHelper.NumeroSerial);
+ string password = new Token().AggerEncrypt(senha);
+ AuthSso result = BuscaUsuarioSso(usuario, password, val.Documento).Result;
+ if (result.Code == 401)
+ {
+ return (Usuario)null;
+ }
+ Usuario val2 = read.UsuarioRepository.FindUsuario(usuario);
+ if (result.Code == 404 && val2 == null)
+ {
+ return new Usuario();
+ }
+ if (result.Data == null && val2 != null)
+ {
+ return val2;
+ }
+ if (val2 == null && result.Data != null)
+ {
+ return CustomMap.ToUsuario(result.Data.User, ((DomainBase)val).Id);
+ }
+ return val2;
+ }
+ finally
+ {
+ ((IDisposable)read)?.Dispose();
+ }
+ });
+ }
+}