diff options
Diffstat (limited to 'Codemerx/Gestor.Application/Servicos/PermissaoArquivoDigitalServico.cs')
| -rw-r--r-- | Codemerx/Gestor.Application/Servicos/PermissaoArquivoDigitalServico.cs | 167 |
1 files changed, 167 insertions, 0 deletions
diff --git a/Codemerx/Gestor.Application/Servicos/PermissaoArquivoDigitalServico.cs b/Codemerx/Gestor.Application/Servicos/PermissaoArquivoDigitalServico.cs new file mode 100644 index 0000000..525efc6 --- /dev/null +++ b/Codemerx/Gestor.Application/Servicos/PermissaoArquivoDigitalServico.cs @@ -0,0 +1,167 @@ +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 PermissaoArquivoDigitalServico : BaseServico
+ {
+ public PermissaoArquivoDigitalServico()
+ {
+ }
+
+ public PermissaoArquivoDigital BuscarPermissao(Usuario usuario, TipoArquivoDigital tela)
+ {
+ PermissaoArquivoDigital permissaoArquivoDigital;
+ int num = 3;
+ while (num > 0)
+ {
+ try
+ {
+ using (UnitOfWork read = Instancia.Read)
+ {
+ PermissaoArquivoDigital permissaoArquivoDigital1 = read.get_PermissaoArquivoDigitalRepository().FindByPermissao(usuario.get_Id(), tela);
+ if (permissaoArquivoDigital1 != null)
+ {
+ permissaoArquivoDigital = permissaoArquivoDigital1;
+ }
+ else
+ {
+ PermissaoArquivoDigital permissaoArquivoDigital2 = new PermissaoArquivoDigital();
+ permissaoArquivoDigital2.set_Usuario(usuario);
+ permissaoArquivoDigital2.set_Tela(tela);
+ permissaoArquivoDigital2.set_Consultar(true);
+ permissaoArquivoDigital2.set_Excluir(true);
+ permissaoArquivoDigital2.set_Incluir(true);
+ permissaoArquivoDigital = permissaoArquivoDigital2;
+ }
+ }
+ }
+ catch (Exception exception1)
+ {
+ Exception exception = exception1;
+ num = base.Registrar(exception, 85, num, new { usuario = usuario, tela = tela }, true);
+ continue;
+ }
+ return permissaoArquivoDigital;
+ }
+ return null;
+ }
+
+ public async Task<List<PermissaoArquivoDigital>> PermissArquivoDigital(Usuario usuario)
+ {
+ int num = 3;
+ List<PermissaoArquivoDigital> permissaoArquivoDigitals1 = await Task.Run<List<PermissaoArquivoDigital>>(() => {
+ List<PermissaoArquivoDigital> permissaoArquivoDigitals;
+ while (num > 0)
+ {
+ try
+ {
+ using (UnitOfWork read = Instancia.Read)
+ {
+ permissaoArquivoDigitals = read.get_PermissaoArquivoDigitalRepository().FindByUsuario(usuario.get_Id());
+ }
+ }
+ catch (Exception exception)
+ {
+ num = base.Registrar(exception, 84, num, usuario, true);
+ continue;
+ }
+ return permissaoArquivoDigitals;
+ }
+ return new List<PermissaoArquivoDigital>();
+ });
+ return permissaoArquivoDigitals1;
+ }
+
+ public async Task<List<PermissaoArquivoDigital>> SavePermiss(List<PermissaoArquivoDigital> permissao, List<PermissaoArquivoDigital> prev)
+ {
+ int num = 3;
+ base.Sucesso = true;
+ List<PermissaoArquivoDigital> permissaoArquivoDigitals1 = permissao;
+ List<PermissaoArquivoDigital> permissaoArquivoDigitals2 = prev;
+ List<PermissaoArquivoDigital> permissaoArquivoDigitals3 = await Task.Run<List<PermissaoArquivoDigital>>(() => {
+ List<PermissaoArquivoDigital> permissaoArquivoDigitals;
+ while (num > 0)
+ {
+ permissao = permissaoArquivoDigitals1;
+ prev = permissaoArquivoDigitals2;
+ List<Diferenca> diferencas = new List<Diferenca>();
+ List<RegistroLog> registroLogs = new List<RegistroLog>();
+ try
+ {
+ using (UnitOfWork commited = Instancia.Commited)
+ {
+ permissao.ForEach((PermissaoArquivoDigital x) => {
+ PermissaoArquivoDigital permissaoArquivoDigital = x;
+ PermissaoArquivoDigital permissaoArquivoDigital1 = prev.FirstOrDefault<PermissaoArquivoDigital>((PermissaoArquivoDigital y) => y.get_Id() == permissaoArquivoDigital.get_Id());
+ if (permissaoArquivoDigital1 != null && permissaoArquivoDigital1.get_Consultar() == permissaoArquivoDigital.get_Consultar() && permissaoArquivoDigital1.get_Excluir() == permissaoArquivoDigital.get_Excluir() && permissaoArquivoDigital1.get_Incluir() == permissaoArquivoDigital.get_Incluir())
+ {
+ return;
+ }
+ if (permissaoArquivoDigital1 != null)
+ {
+ registroLogs.Add(base.CreateLog(permissaoArquivoDigital.get_Usuario().get_Id(), permissaoArquivoDigital.Compare(permissaoArquivoDigital1.GetValorOriginal()), 43, 1));
+ }
+ else
+ {
+ registroLogs.Add(base.CreateLog(permissaoArquivoDigital.get_Usuario().get_Id(), permissaoArquivoDigital.GetValorOriginal(), 43, 0));
+ }
+ permissaoArquivoDigital = (permissaoArquivoDigital.get_Id() == 0 ? commited.get_PermissaoArquivoDigitalRepository().SaveOrUpdate(permissaoArquivoDigital) : commited.get_PermissaoArquivoDigitalRepository().Merge(permissaoArquivoDigital));
+ });
+ base.SaveLog(registroLogs, commited);
+ commited.Commit();
+ permissaoArquivoDigitals = permissao;
+ }
+ }
+ catch (Exception exception)
+ {
+ num = base.Registrar(exception, 258, num, new { permissao = permissao, prev = prev }, true);
+ continue;
+ }
+ return permissaoArquivoDigitals;
+ }
+ return permissaoArquivoDigitals1;
+ });
+ return permissaoArquivoDigitals3;
+ }
+
+ public async Task<PermissaoArquivoDigital> VerificarPermissao(Usuario usuario, TipoArquivoDigital tela)
+ {
+ int num = 3;
+ PermissaoArquivoDigital permissaoArquivoDigital1 = await Task.Run<PermissaoArquivoDigital>(() => {
+ PermissaoArquivoDigital permissaoArquivoDigital;
+ while (num > 0)
+ {
+ try
+ {
+ using (UnitOfWork read = Instancia.Read)
+ {
+ permissaoArquivoDigital = read.get_PermissaoArquivoDigitalRepository().FindByPermissao(usuario.get_Id(), tela);
+ }
+ }
+ catch (Exception exception)
+ {
+ num = base.Registrar(exception, 85, num, new { usuario = usuario, tela = tela }, true);
+ continue;
+ }
+ return permissaoArquivoDigital;
+ }
+ return null;
+ });
+ return permissaoArquivoDigital1;
+ }
+ }
+}
\ No newline at end of file |