예제 #1
0
        private void IniciarFirma()
        {
            Log.Debug("Inicio de firma automatica");

            string tempFile = Path.GetTempFileName();

            if (WebHelper.DownloadPdf(tempFile))
            {
                _fileName = tempFile;

                if (App.Setup.ModoOculto)
                {
                    this.Visible = false;
                }
                else
                {
                    MostrarDocumento(_fileName);
                }

                WebHelper.Status(Juschubut.PdfSign.Common.StatusCode.Debug, "Preparando para firmar");

                if (Firmar())
                {
                    WebHelper.Status(Juschubut.PdfSign.Common.StatusCode.Debug, "Documento firmado");

                    WebHelper.UploadFile(_signedFileName);

                    WebHelper.Status(Juschubut.PdfSign.Common.StatusCode.Completado);

                    if (App.Setup.ModoOculto)
                    {
                        Application.Exit();
                    }
                }
                else
                {
                    WebHelper.Status(PdfSign.Common.StatusCode.Error, "Problemas con la firma");
                }
            }

            this.Visible = true;
        }
        private void timer_Tick(object sender, EventArgs e)
        {
            this.Visible = !App.Setup.ModoOculto;

            if (this.Visible)
            {
                this.Focus();
            }

            timer.Enabled = false;

            Status("Iniciando Firma digital...");

            if (App.Setup.Archivos.Count == 0)
            {
                Status("Descargando metadata...");

                WebHelper.Status(PdfSign.Common.StatusCode.Debug, "Descargando metadata");

                var metadata = WebHelper.GetMetadata();

                if (metadata != null)
                {
                    App.Setup.Archivos = metadata.Archivos;
                }
            }

            if (App.Setup.Archivos == null || App.Setup.Archivos.Count == 0)
            {
                MensajeError("No se encontraron archivos para firmar.");
                return;
            }

            string templateStatus = "{1} - {0}...";

            if (App.Setup.Archivos.Count == 0)
            {
                templateStatus = "{0}...";
            }

            if (App.Setup.Archivos.Count == 0)
            {
                WebHelper.Status(PdfSign.Common.StatusCode.Error, "No se encontraron archivos para firmar");
                return;
            }

            foreach (var file in App.Setup.Archivos)
            {
                App.Setup.FileID = file.ID;

                if (string.IsNullOrEmpty(file.Url))
                {
                    continue;
                }

                string inputFile  = Path.GetTempFileName();
                string outputFile = Path.GetTempFileName();

                Status(string.Format(templateStatus, "Descargando", file.Nombre));

                if (WebHelper.DownloadPdf(inputFile))
                {
                    Application.DoEvents();

                    file.CodigoStatus = Juschubut.PdfSign.Common.StatusCode.Firmando.ToString();

                    WebHelper.Status(Juschubut.PdfSign.Common.StatusCode.Debug, "Preparando para firmar");

                    Application.DoEvents();

                    Status(string.Format(templateStatus, "Firmando", file.Nombre));

                    var result = App.Firmar(this.Signer, inputFile, outputFile);

                    Application.DoEvents();

                    if (result.IsSuccess)
                    {
                        WebHelper.Status(Juschubut.PdfSign.Common.StatusCode.Debug, "Documento firmado");

                        Status(string.Format(templateStatus, "Terminando firma", file.Nombre));

                        WebHelper.UploadFile(outputFile);
                    }
                    else
                    {
                        WebHelper.Status(PdfSign.Common.StatusCode.Error, "No se pudo firmar el documento actual");

                        MensajeError(result.Message);
                        return;
                    }
                }
                else
                {
                    WebHelper.Status(PdfSign.Common.StatusCode.Error, "No se pudo descagar el documento para firmar");
                    return;
                }
            }

            WebHelper.Status(Juschubut.PdfSign.Common.StatusCode.Completado);

            Environment.ExitCode = 1;
            Application.Exit();
        }