From 1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1 Mon Sep 17 00:00:00 2001 From: Lucas Faria Mendes Date: Mon, 30 Mar 2026 10:38:18 -0300 Subject: chore: location --- .../Servicos/PermissaoUsuarioServico.cs | 152 +++++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 Codemerx/Gestor.Application/Servicos/PermissaoUsuarioServico.cs (limited to 'Codemerx/Gestor.Application/Servicos/PermissaoUsuarioServico.cs') diff --git a/Codemerx/Gestor.Application/Servicos/PermissaoUsuarioServico.cs b/Codemerx/Gestor.Application/Servicos/PermissaoUsuarioServico.cs new file mode 100644 index 0000000..061797e --- /dev/null +++ b/Codemerx/Gestor.Application/Servicos/PermissaoUsuarioServico.cs @@ -0,0 +1,152 @@ +using Gestor.Application.Helpers; +using Gestor.Application.Servicos.Generic; +using Gestor.Infrastructure.Repository.Interface; +using Gestor.Infrastructure.UnitOfWork.Generic; +using Gestor.Infrastructure.UnitOfWork.Logic; +using Gestor.Model.Common; +using Gestor.Model.Domain.Common; +using Gestor.Model.Domain.Generic; +using Gestor.Model.Domain.Seguros; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Threading.Tasks; + +namespace Gestor.Application.Servicos +{ + public class PermissaoUsuarioServico : BaseServico + { + public PermissaoUsuarioServico() + { + } + + public PermissaoUsuario BuscarPermissao(Usuario usuario, TipoTela tela) + { + PermissaoUsuario permissaoUsuario; + int num = 3; + while (num > 0) + { + try + { + using (UnitOfWork read = Instancia.Read) + { + permissaoUsuario = read.get_PermissaoUsuarioRepository().FindByPermissao(usuario.get_Id(), tela); + } + } + catch (Exception exception1) + { + Exception exception = exception1; + num = base.Registrar(exception, 85, num, new { usuario = usuario, tela = tela }, true); + continue; + } + return permissaoUsuario; + } + return null; + } + + public async Task> PermissUsuario(Usuario usuario) + { + int num = 3; + List permissaoUsuarios1 = await Task.Run>(() => { + List permissaoUsuarios; + while (num > 0) + { + try + { + using (UnitOfWork read = Instancia.Read) + { + permissaoUsuarios = read.get_PermissaoUsuarioRepository().FindByUsuario(usuario.get_Id()); + } + } + catch (Exception exception) + { + num = base.Registrar(exception, 84, num, usuario, true); + continue; + } + return permissaoUsuarios; + } + return new List(); + }); + return permissaoUsuarios1; + } + + public async Task> SavePermiss(List permissao, List prev) + { + int num = 3; + base.Sucesso = true; + List permissaoUsuarios1 = permissao; + List permissaoUsuarios2 = prev; + List permissaoUsuarios3 = await Task.Run>(() => { + List permissaoUsuarios; + List registroLogs = new List(); + while (num > 0) + { + permissao = permissaoUsuarios1; + prev = permissaoUsuarios2; + try + { + using (UnitOfWork commited = Instancia.Commited) + { + permissao.ForEach((PermissaoUsuario x) => { + PermissaoUsuario permissaoUsuario = x; + PermissaoUsuario permissaoUsuario1 = prev.FirstOrDefault((PermissaoUsuario y) => y.get_Id() == permissaoUsuario.get_Id()); + if (permissaoUsuario1 != null && permissaoUsuario1.get_Alterar() == permissaoUsuario.get_Alterar() && permissaoUsuario1.get_Consultar() == permissaoUsuario.get_Consultar() && permissaoUsuario1.get_Excluir() == permissaoUsuario.get_Excluir() && permissaoUsuario1.get_Incluir() == permissaoUsuario.get_Incluir()) + { + return; + } + if (permissaoUsuario1 != null) + { + registroLogs.Add(base.CreateLog(permissaoUsuario.get_Usuario().get_Id(), permissaoUsuario.Compare(permissaoUsuario1.GetValorOriginal()), 43, 1)); + } + else + { + registroLogs.Add(base.CreateLog(permissaoUsuario.get_Usuario().get_Id(), permissaoUsuario.GetValorOriginal(), 43, 0)); + } + permissaoUsuario = (permissaoUsuario.get_Id() == 0 ? commited.get_PermissaoUsuarioRepository().SaveOrUpdate(permissaoUsuario) : commited.get_PermissaoUsuarioRepository().Merge(permissaoUsuario)); + }); + base.SaveLog(registroLogs, commited); + commited.Commit(); + permissaoUsuarios = permissao; + } + } + catch (Exception exception) + { + num = base.Registrar(exception, 258, num, new { permissao = permissao, prev = prev }, true); + continue; + } + return permissaoUsuarios; + } + return permissaoUsuarios1; + }); + return permissaoUsuarios3; + } + + public async Task VerificarPermissao(Usuario usuario, TipoTela tela) + { + int num = 3; + PermissaoUsuario permissaoUsuario1 = await Task.Run(() => { + PermissaoUsuario permissaoUsuario; + while (num > 0) + { + try + { + using (UnitOfWork read = Instancia.Read) + { + permissaoUsuario = read.get_PermissaoUsuarioRepository().FindByPermissao(usuario.get_Id(), tela); + } + } + catch (Exception exception) + { + num = base.Registrar(exception, 85, num, new { usuario = usuario, tela = tela }, true); + continue; + } + return permissaoUsuario; + } + return null; + }); + return permissaoUsuario1; + } + } +} \ No newline at end of file -- cgit v1.2.3