diff options
Diffstat (limited to 'Codemerx/Gestor.Application/Servicos/AssinaturaServico.cs')
| -rw-r--r-- | Codemerx/Gestor.Application/Servicos/AssinaturaServico.cs | 178 |
1 files changed, 178 insertions, 0 deletions
diff --git a/Codemerx/Gestor.Application/Servicos/AssinaturaServico.cs b/Codemerx/Gestor.Application/Servicos/AssinaturaServico.cs new file mode 100644 index 0000000..2151fd9 --- /dev/null +++ b/Codemerx/Gestor.Application/Servicos/AssinaturaServico.cs @@ -0,0 +1,178 @@ +using Assinador.Infrastructure.Repository.Interface;
+using Assinador.Infrastructure.UnitOfWork.Generic;
+using Assinador.Infrastructure.UnitOfWork.Logic;
+using Assinador.Model.Domain;
+using Assinador.Model.Generic;
+using Assinador.Modelos;
+using Assinador.Processos;
+using Gestor.Application.Helpers;
+using Gestor.Model.Domain.Common;
+using Gestor.Model.Domain.Generic;
+using Newtonsoft.Json;
+using Sign.Modelos;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Runtime.CompilerServices;
+using System.Threading.Tasks;
+
+namespace Gestor.Application.Servicos
+{
+ public class AssinaturaServico
+ {
+ public AssinaturaServico()
+ {
+ }
+
+ public async Task<ArquivoParaAssinaturaAssinador> Assinar(Gestor.Model.Domain.Common.ArquivoDigital arquivoDigital, ApoliceAssinador apolice)
+ {
+ AggerSigner aggerSigner = new AggerSigner(AssinadorHelper.Remetente);
+ ArquivoAssinatura arquivoAssinatura = new ArquivoAssinatura();
+ arquivoAssinatura.set_Bytes(arquivoDigital.get_Arquivo());
+ arquivoAssinatura.set_Nome(string.Concat(arquivoDigital.get_Descricao(), arquivoDigital.get_Extensao().ToLower()));
+ ArquivoAssinatura arquivoAssinatura1 = arquivoAssinatura;
+ List<Destinatario> destinatarios = new List<Destinatario>();
+ Destinatario destinatario = new Destinatario();
+ destinatario.set_Email(apolice.get_Email());
+ destinatario.set_Nome(apolice.get_Cliente());
+ destinatario.set_Documento(apolice.get_Documento());
+ destinatarios.Add(destinatario);
+ arquivoAssinatura1.set_Destinatarios(destinatarios);
+ ArquivoCriado arquivoCriado = await aggerSigner.EnviarParaAssinatura(arquivoAssinatura1);
+ ArquivoParaAssinaturaAssinador arquivoParaAssinaturaAssinador = new ArquivoParaAssinaturaAssinador();
+ arquivoParaAssinaturaAssinador.set_AssinaturaId(arquivoCriado.get_Id());
+ arquivoParaAssinaturaAssinador.set_Chave(arquivoCriado.get_Chave());
+ arquivoParaAssinaturaAssinador.set_DocumentoId(apolice.get_Id());
+ arquivoParaAssinaturaAssinador.set_ClienteId(apolice.get_ClienteId());
+ arquivoParaAssinaturaAssinador.set_IndiceId(apolice.get_ArquivoId());
+ arquivoParaAssinaturaAssinador.set_UrlAssinatura(arquivoCriado.get_Url());
+ arquivoParaAssinaturaAssinador.set_Enviado(Funcoes.GetNetworkTime());
+ arquivoParaAssinaturaAssinador.set_UsuarioId(Recursos.Usuario.get_Id());
+ return arquivoParaAssinaturaAssinador;
+ }
+
+ public static async Task<ParametrosAssinaturaAssinador> BuscarParametrosAssinatura(long id)
+ {
+ ParametrosAssinaturaAssinador parametrosAssinaturaAssinador1 = await Task.Run<ParametrosAssinaturaAssinador>(() => {
+ ParametrosAssinaturaAssinador parametrosAssinaturaAssinador;
+ try
+ {
+ using (UnitOfWork read = InstanciaAssinador.Read)
+ {
+ parametrosAssinaturaAssinador = read.get_EmpresaRepository().FindByEmpresa(id);
+ }
+ }
+ catch (Exception exception)
+ {
+ parametrosAssinaturaAssinador = null;
+ }
+ return parametrosAssinaturaAssinador;
+ });
+ return parametrosAssinaturaAssinador1;
+ }
+
+ public async Task<ArquivoParaAssinaturaAssinador> Reenviar(long indice)
+ {
+ ArquivoParaAssinaturaAssinador arquivoParaAssinaturaAssinador;
+ AggerSigner aggerSigner = new AggerSigner(AssinadorHelper.Remetente);
+ using (UnitOfWork commited = InstanciaAssinador.Commited)
+ {
+ ArquivoParaAssinaturaAssinador arquivoParaAssinaturaAssinador1 = commited.get_ArquivoParaAssinaturaRepository().FindByIndice(indice);
+ List<int> nums = new List<int>()
+ {
+ arquivoParaAssinaturaAssinador1.get_AssinaturaId()
+ };
+ await aggerSigner.ReenviarParaAssinatura(nums, null);
+ AssinaturaLogAssinador assinaturaLogAssinador = new AssinaturaLogAssinador();
+ assinaturaLogAssinador.set_Acao(1);
+ assinaturaLogAssinador.set_EntidadeId(arquivoParaAssinaturaAssinador1.get_Id());
+ assinaturaLogAssinador.set_DataHora(Funcoes.GetNetworkTime());
+ ArquivoParaAssinaturaAssinador arquivoParaAssinaturaAssinador2 = arquivoParaAssinaturaAssinador1;
+ JsonSerializerSettings jsonSerializerSetting = new JsonSerializerSettings();
+ jsonSerializerSetting.set_ReferenceLoopHandling(1);
+ assinaturaLogAssinador.set_Descricao(JsonConvert.SerializeObject(arquivoParaAssinaturaAssinador2, jsonSerializerSetting));
+ assinaturaLogAssinador.set_UsuarioId(Recursos.Usuario.get_Id());
+ assinaturaLogAssinador.set_Versao(ApplicationHelper.Versao.ToString());
+ this.SaveLog(assinaturaLogAssinador, commited);
+ arquivoParaAssinaturaAssinador = arquivoParaAssinaturaAssinador1;
+ }
+ return arquivoParaAssinaturaAssinador;
+ }
+
+ public async Task<ArquivoParaAssinaturaAssinador> Save(ArquivoParaAssinaturaAssinador arquivo)
+ {
+ ArquivoParaAssinaturaAssinador arquivoParaAssinaturaAssinador2 = await Task.Run<ArquivoParaAssinaturaAssinador>(() => {
+ ArquivoParaAssinaturaAssinador arquivoParaAssinaturaAssinador;
+ try
+ {
+ using (UnitOfWork commited = InstanciaAssinador.Commited)
+ {
+ arquivo = (arquivo.get_Id() == 0 ? commited.get_ArquivoParaAssinaturaRepository().SaveOrUpdate(arquivo) : commited.get_ArquivoParaAssinaturaRepository().Merge(arquivo));
+ AssinaturaLogAssinador assinaturaLogAssinador = new AssinaturaLogAssinador();
+ assinaturaLogAssinador.set_Acao(0);
+ assinaturaLogAssinador.set_EntidadeId(arquivo.get_Id());
+ assinaturaLogAssinador.set_DataHora(Funcoes.GetNetworkTime());
+ ArquivoParaAssinaturaAssinador arquivoParaAssinaturaAssinador1 = arquivo;
+ JsonSerializerSettings jsonSerializerSetting = new JsonSerializerSettings();
+ jsonSerializerSetting.set_ReferenceLoopHandling(1);
+ assinaturaLogAssinador.set_Descricao(JsonConvert.SerializeObject(arquivoParaAssinaturaAssinador1, jsonSerializerSetting));
+ assinaturaLogAssinador.set_UsuarioId(Recursos.Usuario.get_Id());
+ assinaturaLogAssinador.set_Versao(ApplicationHelper.Versao.ToString());
+ this.SaveLog(assinaturaLogAssinador, commited);
+ commited.Commit();
+ arquivoParaAssinaturaAssinador = arquivo;
+ }
+ }
+ catch (Exception exception)
+ {
+ arquivoParaAssinaturaAssinador = null;
+ }
+ return arquivoParaAssinaturaAssinador;
+ });
+ return arquivoParaAssinaturaAssinador2;
+ }
+
+ internal async void SaveLog(AssinaturaLogAssinador keyValues, UnitOfWork unitOfWork)
+ {
+ if (keyValues != null)
+ {
+ try
+ {
+ unitOfWork.get_AssinaturaLogRepository().SaveOrUpdate(keyValues);
+ unitOfWork.Commit();
+ }
+ catch (Exception exception)
+ {
+ }
+ }
+ }
+
+ public async Task<bool> VerificarAssinado(long id)
+ {
+ bool flag1 = await Task.Run<bool>(() => {
+ bool flag;
+ using (UnitOfWork read = InstanciaAssinador.Read)
+ {
+ ArquivoParaAssinaturaAssinador arquivoParaAssinaturaAssinador = read.get_ArquivoParaAssinaturaRepository().FindByIndice(id);
+ flag = (arquivoParaAssinaturaAssinador == null ? false : (arquivoParaAssinaturaAssinador.get_Status() == 1 ? true : arquivoParaAssinaturaAssinador.get_Status() == 2));
+ }
+ return flag;
+ });
+ return flag1;
+ }
+
+ public async Task<bool> VerificarEnviado(long id)
+ {
+ bool flag1 = await Task.Run<bool>(() => {
+ bool flag;
+ using (UnitOfWork read = InstanciaAssinador.Read)
+ {
+ ArquivoParaAssinaturaAssinador arquivoParaAssinaturaAssinador = read.get_ArquivoParaAssinaturaRepository().FindByIndice(id);
+ flag = (arquivoParaAssinaturaAssinador == null ? false : arquivoParaAssinaturaAssinador.get_Status() == 0);
+ }
+ return flag;
+ });
+ return flag1;
+ }
+ }
+}
\ No newline at end of file |