diff options
| author | Lucas Faria Mendes <lucas.fariamo08@gmail.com> | 2026-03-30 13:35:25 +0000 |
|---|---|---|
| committer | Lucas Faria Mendes <lucas.fariamo08@gmail.com> | 2026-03-30 13:35:25 +0000 |
| commit | 674ca83ba9243a9e95a7568c797668dab6aee26a (patch) | |
| tree | 4a905b3fb1d827665a34d63f67bc5559f8e7235b /Gestor.Application/Servicos/PermissaoUsuarioServico.cs | |
| download | gestor-674ca83ba9243a9e95a7568c797668dab6aee26a.tar.gz gestor-674ca83ba9243a9e95a7568c797668dab6aee26a.zip | |
feat: upload files
Diffstat (limited to 'Gestor.Application/Servicos/PermissaoUsuarioServico.cs')
| -rw-r--r-- | Gestor.Application/Servicos/PermissaoUsuarioServico.cs | 152 |
1 files changed, 152 insertions, 0 deletions
diff --git a/Gestor.Application/Servicos/PermissaoUsuarioServico.cs b/Gestor.Application/Servicos/PermissaoUsuarioServico.cs new file mode 100644 index 0000000..061797e --- /dev/null +++ b/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<List<PermissaoUsuario>> PermissUsuario(Usuario usuario)
+ {
+ int num = 3;
+ List<PermissaoUsuario> permissaoUsuarios1 = await Task.Run<List<PermissaoUsuario>>(() => {
+ List<PermissaoUsuario> 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<PermissaoUsuario>();
+ });
+ return permissaoUsuarios1;
+ }
+
+ public async Task<List<PermissaoUsuario>> SavePermiss(List<PermissaoUsuario> permissao, List<PermissaoUsuario> prev)
+ {
+ int num = 3;
+ base.Sucesso = true;
+ List<PermissaoUsuario> permissaoUsuarios1 = permissao;
+ List<PermissaoUsuario> permissaoUsuarios2 = prev;
+ List<PermissaoUsuario> permissaoUsuarios3 = await Task.Run<List<PermissaoUsuario>>(() => {
+ List<PermissaoUsuario> permissaoUsuarios;
+ List<RegistroLog> registroLogs = new List<RegistroLog>();
+ 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>((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<PermissaoUsuario> VerificarPermissao(Usuario usuario, TipoTela tela)
+ {
+ int num = 3;
+ PermissaoUsuario permissaoUsuario1 = await Task.Run<PermissaoUsuario>(() => {
+ 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 |