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; } } }