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/RestricaoUsuarioServico.cs | 221 +++++++++++++++++++++ 1 file changed, 221 insertions(+) create mode 100644 Codemerx/Gestor.Application/Servicos/RestricaoUsuarioServico.cs (limited to 'Codemerx/Gestor.Application/Servicos/RestricaoUsuarioServico.cs') diff --git a/Codemerx/Gestor.Application/Servicos/RestricaoUsuarioServico.cs b/Codemerx/Gestor.Application/Servicos/RestricaoUsuarioServico.cs new file mode 100644 index 0000000..c9cbe35 --- /dev/null +++ b/Codemerx/Gestor.Application/Servicos/RestricaoUsuarioServico.cs @@ -0,0 +1,221 @@ +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 RestricaoUsuarioServico : BaseServico + { + public RestricaoUsuarioServico() + { + } + + public RestricaoUsuario BuscarRestricao(Usuario usuario, TipoRestricao restricao) + { + RestricaoUsuario restricaoUsuario; + int num = 3; + while (num > 0) + { + try + { + using (UnitOfWork read = Instancia.Read) + { + restricaoUsuario = read.get_RestricaoUsuarioRepository().FindRestricao(usuario.get_Id(), restricao); + } + } + catch (Exception exception1) + { + Exception exception = exception1; + num = base.Registrar(exception, 89, num, new { usuario = usuario, restricao = restricao }, true); + continue; + } + return restricaoUsuario; + } + return null; + } + + public async Task> BuscarRestricoes(long id) + { + int num = 3; + List restricaoUsuarios1 = await Task.Run>(() => { + List restricaoUsuarios; + while (num > 0) + { + try + { + using (UnitOfWork read = Instancia.Read) + { + restricaoUsuarios = read.get_RestricaoUsuarioRepository().FindByUsuario(id); + } + } + catch (Exception exception) + { + num = base.Registrar(exception, 90, num, id, true); + continue; + } + return restricaoUsuarios; + } + return new List(); + }); + return restricaoUsuarios1; + } + + public async Task> BuscarRestricoesCamposRelatorios(long id) + { + int num = 3; + List restricaoUsuarioCamposRelatorios1 = await Task.Run>(() => { + List restricaoUsuarioCamposRelatorios; + while (num > 0) + { + try + { + using (UnitOfWork read = Instancia.Read) + { + restricaoUsuarioCamposRelatorios = read.get_RestricaoUsuarioCamposRelatoriosRepository().FindByUsuario(id); + } + } + catch (Exception exception) + { + num = base.Registrar(exception, 90, num, id, true); + continue; + } + return restricaoUsuarioCamposRelatorios; + } + return new List(); + }); + return restricaoUsuarioCamposRelatorios1; + } + + public async Task> SaveRestri(List restricoes, List prev) + { + int num = 3; + base.Sucesso = true; + List restricaoUsuarios1 = restricoes; + List restricaoUsuarios2 = prev; + List restricaoUsuarios3 = await Task.Run>(() => { + List restricaoUsuarios; + while (num > 0) + { + List diferencas = new List(); + List registroLogs = new List(); + restricoes = restricaoUsuarios1; + prev = restricaoUsuarios2; + try + { + using (UnitOfWork commited = Instancia.Commited) + { + restricoes.ForEach((RestricaoUsuario x) => { + RestricaoUsuario restricaoUsuario = x; + RestricaoUsuario restricaoUsuario1 = prev.FirstOrDefault((RestricaoUsuario y) => { + if (restricaoUsuario.get_Id() != 0) + { + return y.get_Id() == restricaoUsuario.get_Id(); + } + return y.get_Tipo() == restricaoUsuario.get_Tipo(); + }); + if (restricaoUsuario1 != null && restricaoUsuario1.get_Restricao() == restricaoUsuario.get_Restricao()) + { + return; + } + if (restricaoUsuario1 != null) + { + registroLogs.Add(base.CreateLog(restricaoUsuario.get_Usuario().get_Id(), restricaoUsuario.Compare(restricaoUsuario1.GetValorOriginal()), 43, 1)); + } + else + { + registroLogs.Add(base.CreateLog(restricaoUsuario.get_Usuario().get_Id(), restricaoUsuario.GetValorOriginal(), 43, 0)); + } + restricaoUsuario = (restricaoUsuario.get_Id() == 0 ? commited.get_RestricaoUsuarioRepository().SaveOrUpdate(restricaoUsuario) : commited.get_RestricaoUsuarioRepository().Merge(restricaoUsuario)); + }); + base.SaveLog(registroLogs, commited); + commited.Commit(); + restricaoUsuarios = restricoes; + } + } + catch (Exception exception) + { + num = base.Registrar(exception, 261, num, new { restricoes = restricoes, prev = prev }, true); + continue; + } + return restricaoUsuarios; + } + return restricaoUsuarios1; + }); + return restricaoUsuarios3; + } + + public async Task> SaveRestriCamposRelatorios(List restricoes, List prev) + { + int num = 3; + base.Sucesso = true; + List restricaoUsuarioCamposRelatorios1 = restricoes; + List restricaoUsuarioCamposRelatorios2 = prev; + List restricaoUsuarioCamposRelatorios3 = await Task.Run>(() => { + List restricaoUsuarioCamposRelatorios; + while (num > 0) + { + List diferencas = new List(); + List registroLogs = new List(); + restricoes = restricaoUsuarioCamposRelatorios1; + prev = restricaoUsuarioCamposRelatorios2; + try + { + using (UnitOfWork commited = Instancia.Commited) + { + restricoes.ForEach((RestricaoUsuarioCamposRelatorios x) => { + RestricaoUsuarioCamposRelatorios restricaoUsuarioCamposRelatorio = x; + RestricaoUsuarioCamposRelatorios restricaoUsuarioCamposRelatorio1 = prev.FirstOrDefault((RestricaoUsuarioCamposRelatorios y) => { + if (y.get_Id() != 0) + { + return y.get_Id() == restricaoUsuarioCamposRelatorio.get_Id(); + } + if (y.get_Campo() != restricaoUsuarioCamposRelatorio.get_Campo()) + { + return false; + } + return y.get_Relatorio() == restricaoUsuarioCamposRelatorio.get_Relatorio(); + }); + if (restricaoUsuarioCamposRelatorio1 != null && restricaoUsuarioCamposRelatorio1.get_Restricao() == restricaoUsuarioCamposRelatorio.get_Restricao()) + { + return; + } + if (restricaoUsuarioCamposRelatorio1 != null) + { + registroLogs.Add(base.CreateLog(restricaoUsuarioCamposRelatorio.get_Usuario().get_Id(), restricaoUsuarioCamposRelatorio.Compare(restricaoUsuarioCamposRelatorio1.GetValorOriginal()), 43, 1)); + } + else + { + registroLogs.Add(base.CreateLog(restricaoUsuarioCamposRelatorio.get_Usuario().get_Id(), restricaoUsuarioCamposRelatorio.GetValorOriginal(), 43, 0)); + } + restricaoUsuarioCamposRelatorio = (restricaoUsuarioCamposRelatorio.get_Id() == 0 ? commited.get_RestricaoUsuarioCamposRelatoriosRepository().SaveOrUpdate(restricaoUsuarioCamposRelatorio) : commited.get_RestricaoUsuarioCamposRelatoriosRepository().Merge(restricaoUsuarioCamposRelatorio)); + }); + base.SaveLog(registroLogs, commited); + commited.Commit(); + restricaoUsuarioCamposRelatorios = restricoes; + } + } + catch (Exception exception) + { + num = base.Registrar(exception, 261, num, new { restricoes = restricoes, prev = prev }, true); + continue; + } + return restricaoUsuarioCamposRelatorios; + } + return restricaoUsuarioCamposRelatorios1; + }); + return restricaoUsuarioCamposRelatorios3; + } + } +} \ No newline at end of file -- cgit v1.2.3