예제 #1
0
        public void Firmar_FirmaCorrectaDelDocumento()
        {
            var recursos              = Herramientas.GetResourcesPath();
            var pathCertificado       = Path.Combine(recursos, "certificado.pfx");
            var pathDocumentoSinFirma = Path.Combine(recursos, "documento.pdf");
            var pathDocumentoConFirma = Path.Combine(recursos, "documento-con-firma-test.pdf");
            var certificado           = new Certificado(pathCertificado);
            var firmante              = new Firmante(certificado);

            firmante.Firmar(pathDocumentoSinFirma, pathDocumentoConFirma);

            Assert.IsTrue(File.Exists(pathDocumentoConFirma));
        }
        public static eAjax fnFirmaDocumento(string sCodigo, string sRuta, string sNombre, string sFormato)
        {
            eAjax oeAjax = new eAjax();

            System.Web.HttpContext context = System.Web.HttpContext.Current;
            context.Response.ContentType = "application/json";
            if (HttpContext.Current.Session["leSeguridad"] == null)
            {
                oeAjax.iTipoResultado = 99;
                oeAjax.sMensajeError  = "Fin Session";
                return(oeAjax);
            }

            try
            {
                List <eSeguridad> lstSeguridad = new List <eSeguridad>();
                lstSeguridad = (List <eSeguridad>)HttpContext.Current.Session["leSeguridad"];
                string    sUsuarioAuditoria = lstSeguridad[0].strUsuario;
                int       iIdEmpres         = Convert.ToInt32(lstSeguridad[0].iIdEmpresa);
                int       iIdTrabajador     = Convert.ToInt32(lstSeguridad[0].iIdTrabajador);
                string    sCertificado      = Convert.ToString(lstSeguridad[0].sRutaCertificado);
                PlanesDAO daoplan           = new PlanesDAO();
                int       iresult           = daoplan.fnListafirmaDisponibles(iIdEmpres);
                if (iresult == 0)
                {
                    oeAjax.iTipoResultado = -1;
                    oeAjax.sMensajeError  = "No Cuenta Con Firmas Disponibles";
                }
                else
                {
                    if (sCertificado != "")
                    {
                        DocumentosDAO dao     = new DocumentosDAO();
                        var           vresult = DownloadFileNODELETE("ftp://ftp.site4now.net//documentos//cargados//", sNombre, "xxeguxx-001", "tornadesco.1", @AppDomain.CurrentDomain.BaseDirectory + "Documentos\\");
                        //Si Descargo El Documento
                        if (vresult != "")
                        {
                            var certificado      = new Certificado(sCertificado);
                            var firmante         = new Firmante(certificado);
                            var vrutaDocOriginal = @AppDomain.CurrentDomain.BaseDirectory + "Documentos\\" + sNombre;
                            var vrutaDocFirma    = @AppDomain.CurrentDomain.BaseDirectory + "Documentos\\Firmados\\" + sNombre;
                            //firmante.Firmar(@"c:\demos\documento.pdf", @"c:\demos\documento-firmado.pdf");
                            firmante.Firmar(vrutaDocOriginal, vrutaDocFirma);
                            var notario         = new Notario(certificado);
                            var documentoValido = notario.CertificarDocumento(vrutaDocFirma);
                            if (documentoValido == true)
                            {
                                //transfiere el documento firmado
                                UploadFTP(vrutaDocFirma, "ftp://ftp.site4now.net/", "firmante", "tornadesco.1");
                                var i = dao.fnFirmaDocumento(Convert.ToInt32(sCodigo), @"\\documentos\\firmados\\" + sNombre);
                                File.Delete(vrutaDocOriginal);
                                File.Delete(vrutaDocFirma);
                                oeAjax.iTipoResultado = 1;
                            }
                        }
                    }
                    else
                    {
                        oeAjax.iTipoResultado = -1;
                        oeAjax.sMensajeError  = "No Cuenta Con Un Certificado Asignado";
                    }
                }



                //string sresult = dao.fnListaDocumentoPendientes(iIdEmpres, iIdTrabajador);
                //oeAjax.iTipoResultado = 1;
                //oeAjax.sValor1 = sresult;
            }
            catch (Exception ex)
            {
                oeAjax.sMensajeError = ex.Message;
            }
            return(oeAjax);
        }