summaryrefslogtreecommitdiff
path: root/Gestor.Application/Servicos/AssinaturaServico.cs
diff options
context:
space:
mode:
authorLucas Faria Mendes <lucas.fariamo08@gmail.com>2026-03-30 13:35:25 +0000
committerLucas Faria Mendes <lucas.fariamo08@gmail.com>2026-03-30 13:35:25 +0000
commit674ca83ba9243a9e95a7568c797668dab6aee26a (patch)
tree4a905b3fb1d827665a34d63f67bc5559f8e7235b /Gestor.Application/Servicos/AssinaturaServico.cs
downloadgestor-674ca83ba9243a9e95a7568c797668dab6aee26a.tar.gz
gestor-674ca83ba9243a9e95a7568c797668dab6aee26a.zip
feat: upload files
Diffstat (limited to 'Gestor.Application/Servicos/AssinaturaServico.cs')
-rw-r--r--Gestor.Application/Servicos/AssinaturaServico.cs178
1 files changed, 178 insertions, 0 deletions
diff --git a/Gestor.Application/Servicos/AssinaturaServico.cs b/Gestor.Application/Servicos/AssinaturaServico.cs
new file mode 100644
index 0000000..2151fd9
--- /dev/null
+++ b/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