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/AssinaturaServico.cs | 178 +++++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 Codemerx/Gestor.Application/Servicos/AssinaturaServico.cs (limited to 'Codemerx/Gestor.Application/Servicos/AssinaturaServico.cs') 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 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 destinatarios = new List(); + 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 BuscarParametrosAssinatura(long id) + { + ParametrosAssinaturaAssinador parametrosAssinaturaAssinador1 = await Task.Run(() => { + 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 Reenviar(long indice) + { + ArquivoParaAssinaturaAssinador arquivoParaAssinaturaAssinador; + AggerSigner aggerSigner = new AggerSigner(AssinadorHelper.Remetente); + using (UnitOfWork commited = InstanciaAssinador.Commited) + { + ArquivoParaAssinaturaAssinador arquivoParaAssinaturaAssinador1 = commited.get_ArquivoParaAssinaturaRepository().FindByIndice(indice); + List nums = new List() + { + 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 Save(ArquivoParaAssinaturaAssinador arquivo) + { + ArquivoParaAssinaturaAssinador arquivoParaAssinaturaAssinador2 = await Task.Run(() => { + 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 VerificarAssinado(long id) + { + bool flag1 = await Task.Run(() => { + 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 VerificarEnviado(long id) + { + bool flag1 = await Task.Run(() => { + 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 -- cgit v1.2.3