Beispiel #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            DocsPAWA.DocsPaWR.FileDocumento result = null;
            Response.Expires = -1;

            FirmaDigitale.FirmaDigitaleMng  firmaDigitaleMng = new FirmaDigitale.FirmaDigitaleMng();
            DocsPAWA.DocsPaWR.FileDocumento fileFirmato      = firmaDigitaleMng.GetSignedDocument(this);
            firmaDigitaleMng = null;

            // Se ho un file fisico da poter convertire
            if (fileFirmato != null)
            {
                // procedo con la conversione sincrona
                result = new DocsPAWA.DocsPaWR.DocsPaWebService().GeneratePDFInSyncMod(fileFirmato);
            }

            if (result != null)
            {
                this.Response.ContentType = "application/pdf";
                this.Response.AddHeader("content-length", result.content.Length.ToString());
                this.Response.BinaryWrite(result.content);
            }
            else
            {
                this.Response.StatusCode        = 500;
                this.Response.StatusDescription = "Non è stato possibile convertire il documento in PDF lato server";
            }
        }
Beispiel #2
0
        private void Page_Load(object sender, System.EventArgs e)
        {
            Response.Expires = -1;


            bool   getHash  = false;
            string signType = this.Request.QueryString["signType"];

            if (!String.IsNullOrEmpty(signType))
            {
                if (signType == "P" || signType == "C")
                {
                    getHash = true;
                }
            }

            bool   cosign    = false;
            string cosignStr = this.Request.QueryString["tipoFirma"];

            if (!String.IsNullOrEmpty(cosignStr))
            {
                if (cosignStr.ToLower().Equals("cosign"))
                {
                    cosign = true;
                }
            }

            FirmaDigitale.FirmaDigitaleMng firmaDigitaleMng = new FirmaDigitale.FirmaDigitaleMng();

            if (!getHash)
            {
                DocsPAWA.DocsPaWR.FileDocumento fileFirmato = firmaDigitaleMng.GetSignedDocument(this);

                firmaDigitaleMng = null;

                if (fileFirmato != null)
                {
                    Response.BinaryWrite(fileFirmato.content);
                }
            }
            else
            {
                if (!cosign)
                {
                    bool pades = (signType == "P");
                    Response.BinaryWrite(System.Text.ASCIIEncoding.ASCII.GetBytes(firmaDigitaleMng.GetSignedDocumentHash(this, pades)));
                }
                else
                {
                    Response.BinaryWrite(System.Text.ASCIIEncoding.ASCII.GetBytes(firmaDigitaleMng.GetCoSignDocumentHash(this)));
                }
            }
        }
Beispiel #3
0
        /// <summary>
        /// Funzione per la conversione dei documenti in PDF
        /// </summary>
        /// <param name="documentsInfo">La lista con le informazioni sui documenti da convertire</param>
        /// <returns>Il report dell'elaborazione</returns>
        public MassiveOperationReport ConvertInPdf(List <BaseInfoDoc> documentsInfo)
        {
            DocsPaWebService ws = new DocsPaWebService();

            ws.Timeout = System.Threading.Timeout.Infinite;
            // Il report da restituire
            MassiveOperationReport report;

            // Il risultato della messa in conversione di un documento
            MassiveOperationReport.MassiveOperationResultEnum tempResult;

            // Il messaggio da inserire nel report
            string message;

            // Informazioni sull'utente che ha lanciato la procedura
            InfoUtente userInfo;

            // Il file associato al documento
            byte[] content = null;

            // Inizializzazione del report
            report = new MassiveOperationReport();

            // Recupero delle informazioni sull'utente
            userInfo = UserManager.getInfoUtente(this);
            foreach (BaseInfoDoc doc in documentsInfo)
            {
                // Inizializzazione del messaggio
                string codice = MassiveOperationUtils.getItem(doc.IdProfile).Codice;
                message = "Documento inserito correttamente nella coda di conversione PDF.";

                //Recupero i diritti sul documento
                string ar = ws.getAccessRightDocBySystemID(doc.IdProfile, UserManager.getInfoUtente(this));

                // Verifica delle informazioni sul documento
                tempResult = this.ValidateDocumentInformation(doc, out message);

                if (ar.Equals("20"))
                {
                    message    = "Il documento è in attesa di accettazione, quindi non può essere convertito";
                    tempResult = MassiveOperationReport.MassiveOperationResultEnum.KO;
                }

                //Verifico che il documento non sia consolidato
                FirmaDigitale.FirmaDigitaleMng mng             = new FirmaDigitale.FirmaDigitaleMng();
                DocsPaWR.SchedaDocumento       schedaDocumento = mng.GetSchedaDocumento(doc.DocNumber);

                if (schedaDocumento != null)
                {
                    if (schedaDocumento.ConsolidationState != null &&
                        schedaDocumento.ConsolidationState.State > DocsPaWR.DocumentConsolidationStateEnum.None)
                    {
                        // Il documento risulta consolidato, non può essere firmato digitalmente
                        message    = "Il documento risulta consolidato";
                        tempResult = MassiveOperationReport.MassiveOperationResultEnum.KO;
                    }
                }

                // Se il risultato di validazione delle informazioni è OK, si pruò procedere
                if (tempResult == MassiveOperationReport.MassiveOperationResultEnum.OK)
                {
                    try
                    {
                        // Recupero delle informazioni sul file da convertire
                        content = FileManager.getInstance(Session.SessionID).GetFile(
                            this,
                            doc.VersionId,
                            doc.VersionNumber.ToString(),
                            doc.DocNumber,
                            doc.Path,
                            doc.FileName,
                            false).content;
                    }
                    catch (Exception e)
                    {
                        message    = "Errore durante il reperimento del file associato al documento.";
                        tempResult = MassiveOperationReport.MassiveOperationResultEnum.KO;
                    }
                }

                // Se si può procedere si mette in coda il file da convertire
                if (tempResult == MassiveOperationReport.MassiveOperationResultEnum.OK)
                {
                    try
                    {
                        // Avvio della conversione
                        FileManager.EnqueueServerPdfConversionAM(
                            this,
                            userInfo,
                            content,
                            doc.FileName,
                            new SchedaDocumento()
                        {
                            systemId  = doc.IdProfile,
                            docNumber = doc.DocNumber
                        });
                    }
                    catch (Exception e)
                    {
                        tempResult = MassiveOperationReport.MassiveOperationResultEnum.KO;
                        message    = "Errore durante l'inserimento del documento nella coda di conversione.";
                    }
                }
                // Inserimento di una nuova riga nel report
                report.AddReportRow(
                    codice,
                    tempResult,
                    message);
            }

            // Restituzione del report
            return(report);
        }