コード例 #1
0
        public DocsPaVO.documento.FileDocumento CreaRicevuta(DocsPaVO.utente.InfoUtente userInfo, string idDocument, string text)
        {
            byte[] content = null;
            DocsPaVO.documento.FileDocumento doc = new DocsPaVO.documento.FileDocumento();

            Document pdf = new Document();

            pdf.Pages.Add();

            Aspose.Pdf.Text.TextFragment tf = new Aspose.Pdf.Text.TextFragment(text);

            pdf.Pages[1].Paragraphs.Add(tf);

            using (MemoryStream stream = new MemoryStream())
            {
                pdf.Save(stream);

                if (stream != null)
                {
                    doc.content = stream.ToArray();
                }

                stream.Close();
            }

            return(doc);
        }
コード例 #2
0
        public bool PutFile(DocsPaVO.documento.FileRequest fileRequest, DocsPaVO.documento.FileDocumento fileDocumento, string estensione)
        {
            String Libreria   = "";
            String NomeForm   = System.Configuration.ConfigurationManager.AppSettings["Hummingbird_form"];
            String Titolo_Doc = fileRequest.fileName;
            String Appl_ID    = fileRequest.docNumber;
            String Autore     = fileRequest.autore;
            String Note       = fileRequest.descrizione;

            Byte[] pDoc       = fileDocumento.content;
            String Trustee    = "";
            String DMUser     = System.Configuration.ConfigurationManager.AppSettings["Hummingbird_user"];
            String DMPassword = System.Configuration.ConfigurationManager.AppSettings["Hummingbird_password"];
            String esito      = "";

            DMFileOperationSoapClient ws = new DMFileOperationSoapClient();

            esito = ws.AggiungiDocumentoSec(Libreria, NomeForm, Titolo_Doc, Appl_ID, Autore, Note, pDoc, Trustee, DMUser, DMPassword);
            if (esito == "0")
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
コード例 #3
0
        private static DocsPaVO.documento.FileDocumento GeneraFileDoc(System.IO.FileStream fs)
        {
            DocsPaVO.documento.FileDocumento doc = new DocsPaVO.documento.FileDocumento();
            try
            {
                doc.name        = "StampaBusta.pdf";
                doc.path        = AppDomain.CurrentDomain.BaseDirectory + "Report/busta";
                doc.fullName    = "StampaBusta";
                doc.contentType = "application/pdf";

                Byte[] byteArray = new byte[fs.Length];
                fs.Read(byteArray, 0, (int)fs.Length);

                doc.content = byteArray;
                doc.length  = (int)fs.Length;
                fs.Close();
            }
            catch (Exception ex)
            {
                if (fs != null)
                {
                    fs.Close();
                }
                throw ex;
            }

            return(doc);
        }
コード例 #4
0
        public static bool DeletePersonalFile(DocsPaVO.documento.FileDocumento fileDocument, string repositoryId, DocsPaVO.utente.InfoUtente infoUtente)
        {
            bool retVal = false;

            DocsPaDB.Query_DocsPAWS.UploadFiles uploadFiles = new DocsPaDB.Query_DocsPAWS.UploadFiles();

            uploadFiles.BeginTransaction();
            if (uploadFiles.DeleteFileInUpload(fileDocument.name, repositoryId, infoUtente))
            {
                if (System.IO.File.Exists(fileDocument.fullName))
                {
                    try
                    {
                        System.IO.File.Delete(fileDocument.fullName);
                        uploadFiles.CommitTransaction();
                        retVal = true;
                    }
                    catch
                    {
                        uploadFiles.RollbackTransaction();
                    }
                }
                else
                {
                    uploadFiles.CommitTransaction();
                    retVal = true;
                }
            }
            return(retVal);
        }
コード例 #5
0
        public bool PutFile(DocsPaVO.documento.FileRequest fileRequest, DocsPaVO.documento.FileDocumento fileDocumento, string estensione)
        {
            Titolo_Doc = fileRequest.fileName;
            Note       = fileRequest.descrizione;
            pDoc       = fileDocumento.content;
            Este       = estensione;
            String num_HB = "";
            String w_ins  = "";
            bool   esito  = false;

            Appl_ID = get_Appl_ID(estensione.ToLowerInvariant());

            if (Appl_ID != null)
            {
                String tip_doc = get_tip_doc(fileRequest.docNumber);//aggiunto per NSD per tipologia
                DMFileOperationSoapClient ws = new DMFileOperationSoapClient();
                num_HB = ws.AggiungiDocumentoSec(Libreria, NomeForm, Titolo_Doc, Appl_ID, Autore, Note, pDoc, Trustee, DMUser, DMPassword);

                w_ins = set_fk_hermes(fileRequest.docNumber, num_HB, fileRequest.fileName, fileRequest.versionId);
                esito = true;
            }
            else
            {
                esito = false;
            }
            return(esito);
        }
コード例 #6
0
        private static DocsPaVO.documento.FileDocumento CreaRicevutaPresaVisione(DocsPaVO.utente.InfoUtente userInfo, string idDocument)
        {
            DocsPaVO.documento.FileDocumento fdoc = new DocsPaVO.documento.FileDocumento();

            try
            {
                DocsPaVO.documento.SchedaDocumento schedaDoc    = BusinessLogic.Documenti.DocManager.getDettaglioNoSecurity(userInfo, idDocument);
                DocsPaVO.documento.Documento       doc          = (DocsPaVO.documento.Documento)schedaDoc.documenti[0];
                DocsPaVO.Procedimento.Procedimento procedimento = BusinessLogic.Procedimenti.ProcedimentiManager.GetProcedimentoByIdDoc(idDocument);
                DocsPaVO.utente.Corrispondente     corr         = BusinessLogic.Utenti.UserManager.getCorrispondenteBySystemID(procedimento.Autore);

                string text = string.Format("L'utente {0}, in data {1}, ha preso visione del documento {2} sul Portale dei procedimenti amministrativi.\r\nHash del file: {3}",
                                            corr.descrizione,
                                            procedimento.Documenti[0].DataVisualizzazione,
                                            schedaDoc.protocollo.segnatura,
                                            GetImpronta(doc)
                                            );

                PdfModelProcessor processor = new PdfModelProcessor();
                fdoc                = processor.CreaRicevuta(userInfo, idDocument, text);
                fdoc.name           = "Ricevuta di presa visione.pdf";
                fdoc.fullName       = fdoc.name;
                fdoc.nomeOriginale  = fdoc.name;
                fdoc.contentType    = "application/pdf";
                fdoc.estensioneFile = "pdf";
            }
            catch (Exception ex)
            {
                fdoc = null;
                logger.Error("Errore in CreaRicevutaPresaVisione", ex);
            }

            return(fdoc);
        }
コード例 #7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="infoUtente"></param>
        /// <param name="objRuolo"></param>
        /// <param name="registro"></param>
        /// <param name="filters"></param>
        /// <returns></returns>
        public static DocsPaVO.documento.FileDocumento StampaBusteWithFilters(
            DocsPaVO.utente.InfoUtente infoUtente,
            DocsPaVO.utente.Ruolo objRuolo,
            DocsPaVO.utente.Registro registro,
            DocsPaVO.filtri.FiltroRicerca[][] filters)
        {
            logger.Debug("StampaBusteWithFilters");
            DocsPaVO.documento.FileDocumento fileDoc = new DocsPaVO.documento.FileDocumento();
            try
            {
                // Recupero documenti da stampare
                DataTable tableProfile = (getDestProtUscitaWithFilters(filters, registro)).Tables[0];
                if (tableProfile.Rows.Count > 0)                     //controllo se ritorsa un dataset pieno
                {
                    StampaPDF.StampaBustePdf.StampaBustePdf stampaFile = new StampaPDF.StampaBustePdf.StampaBustePdf();

                    System.IO.FileStream fs = stampaFile.GeneraBustaPdf(tableProfile, infoUtente.userId);

                    fileDoc = GeneraFileDoc(fs);
                    return(fileDoc);
                }
                else
                {
                    return(null);
                }
            }
            catch (Exception ex)
            {
                throw ex;
                return(null);
            }
        }
コード例 #8
0
        /// <summary>
        /// Associa un TSR a un documento ricevuto
        /// </summary>
        /// <param name="path">path dove sono presenti i file ricevuti in mail</param>
        /// <param name="fr">filerequest</param>
        /// <param name="fd">filedocumento</param>
        /// <param name="infoUtente">infoutente</param>
        /// <returns>False in caso di fallimento</returns>
        public static bool MatchTSR(string path, DocsPaVO.documento.FileRequest fr, DocsPaVO.documento.FileDocumento fd, DocsPaVO.utente.InfoUtente infoUtente)
        {
            bool retval = false;

            string[] tsrFiles = Directory.GetFiles(path, "*.tsr");
            //se non ci sono TSR
            if (tsrFiles.Length == 0)
            {
                return(false);
            }

            if (Path.GetExtension(fr.fileName).ToLowerInvariant() == ".tsr")
            {
                //logger.DebugFormat ("Il file è un TSR, non associo un TSR a un TSR");
                return(false);
            }

            BusinessLogic.Documenti.DigitalSignature.VerifyTimeStamp vts = new Documenti.DigitalSignature.VerifyTimeStamp();
            string fdFileName = path + "\\" + fr.fileName;

            foreach (string file in tsrFiles)
            {
                // byte[] tsrFile = File.ReadAllBytes(file);

                byte[] tsrFile;
                if (fdFileName.ToLowerInvariant().Equals(file.ToLowerInvariant()))
                {
                    tsrFile = fd.content;
                }
                else
                {
                    System.IO.FileStream fsAll = new System.IO.FileStream(file, System.IO.FileMode.Open, FileAccess.Read, FileShare.Read);
                    tsrFile = new byte[fsAll.Length];
                    fsAll.Read(tsrFile, 0, (int)fsAll.Length);
                    fsAll.Close();
                }
                try
                {
                    if (vts.machTSR(tsrFile, fd.content))
                    {
                        logger.DebugFormat("Provo TSR {0}", file);
                        DocsPaVO.areaConservazione.OutputResponseMarca resultMarca = vts.Verify(fd.content, tsrFile);
                        if (resultMarca.esito == "OK")
                        {
                            DocsPaDB.Query_DocsPAWS.TimestampDoc timestampDoc = new DocsPaDB.Query_DocsPAWS.TimestampDoc();
                            timestampDoc.saveTSR(infoUtente, resultMarca, fr);
                            logger.DebugFormat("Associato TSR al documento {0} {1}", fr.docNumber, fr.versionId);
                            retval = true;
                        }
                    }
                }
                catch (Exception e1)
                {
                    logger.ErrorFormat("Errore Cercando di associare il TSR {0} : {1}", e1.Message, e1.StackTrace);
                }
            }
            return(retval);
        }
コード例 #9
0
        public DocsPaVO.documento.FileDocumento convertPDF(XmlDocument XMLFile)
        {
            MemoryStream ms     = new MemoryStream();
            Document     pdfDoc = new Document(PageSize.A4.Rotate(), 10f, 10f, 5f, 5f);

            PdfWriter.GetInstance(pdfDoc, ms);

            Font Fontbold   = new Font(BaseFont.CreateFont(BaseFont.COURIER, BaseFont.CP1257, BaseFont.EMBEDDED), 12f, 1);
            Font FontHeader = new Font(BaseFont.CreateFont(BaseFont.COURIER, BaseFont.CP1257, BaseFont.EMBEDDED), 12f);

            string       xml = XMLFile.InnerXml;
            ORGANIGRAMMA org = null;

            using (TextReader tr = new StringReader(xml))
            {
                XmlSerializer SerializerObj = new XmlSerializer(typeof(ORGANIGRAMMA));
                org = (ORGANIGRAMMA)SerializerObj.Deserialize(tr);
            }


            pdfDoc.Open();
            int    lineCount    = 0;
            int    totPages     = (org.RECORD.Length / 44) + 1;
            int    currPage     = 1;
            string titoloReport = org.title;

            foreach (ORGANIGRAMMA.record r in org.RECORD)
            {
                if (lineCount == 0)
                {
                    string header = String.Format("DocsPA - {0} - Pagina: {1} di {2}", titoloReport, currPage++, totPages);
                    pdfDoc.Add(new Paragraph(header, FontHeader));
                    pdfDoc.Add(new Paragraph(28f));
                }

                string str = String.Format("{0}\r\n", r.desc);
                pdfDoc.Add(new Phrase(12f, str, Fontbold));
                lineCount++;

                if (lineCount == 44)
                {
                    lineCount = 0;
                    pdfDoc.NewPage();
                }
            }


            pdfDoc.Close();

            DocsPaVO.documento.FileDocumento filePdf = new DocsPaVO.documento.FileDocumento();
            filePdf.content        = ms.ToArray();
            filePdf.estensioneFile = "pdf";
            filePdf.name           = "stampaOrganigramma";
            filePdf.fullName       = "stampaOrganigramma.pdf";
            filePdf.length         = filePdf.content.Length;
            filePdf.contentType    = "application/pdf";
            return(filePdf);
        }
コード例 #10
0
        private void ConvertToPdf(byte[] content, DocsPaVO.documento.FileRequest fileReq, DocsPaVO.utente.InfoUtente infoUtente)
        {
            logger.Debug("BEGIN");

            MemoryStream ms  = new MemoryStream(content);
            Document     doc = new Document(ms);

            using (MemoryStream pdfStream = new MemoryStream())
            {
                doc.Save(pdfStream, SaveFormat.Pdf);

                if (pdfStream != null && pdfStream.Length > 0)
                {
                    using (DocsPaDB.TransactionContext transaction = new DocsPaDB.TransactionContext())
                    {
                        try
                        {
                            DocsPaVO.documento.FileRequest convertedFileReq = new DocsPaVO.documento.FileRequest();

                            convertedFileReq.cartaceo = false;
                            convertedFileReq.daAggiornareFirmatari = false;
                            convertedFileReq.descrizione           = "Documento converito in PDF lato server";
                            convertedFileReq.docNumber             = fileReq.docNumber;

                            convertedFileReq = BusinessLogic.Documenti.VersioniManager.addVersion(convertedFileReq, infoUtente, false);

                            DocsPaVO.documento.FileDocumento convertedFileDoc = new DocsPaVO.documento.FileDocumento();
                            convertedFileDoc.cartaceo       = false;
                            convertedFileDoc.content        = pdfStream.ToArray();
                            convertedFileDoc.contentType    = "application/pdf";
                            convertedFileDoc.estensioneFile = "PDF";
                            convertedFileDoc.fullName       = fileReq.fileName + ".pdf";
                            convertedFileDoc.length         = convertedFileDoc.content.Length;
                            convertedFileDoc.name           = fileReq.fileName + ".pdf";
                            convertedFileDoc.nomeOriginale  = fileReq.fileName + ".pdf";
                            convertedFileDoc.path           = "";

                            DocsPaVO.documento.FileRequest result = Documenti.FileManager.putFile(convertedFileReq, convertedFileDoc, infoUtente);

                            if (result == null)
                            {
                                throw new Exception();
                            }

                            transaction.Complete();
                        }
                        catch (Exception ex)
                        {
                            logger.Debug("Errore nella conversione PDF Aspose - ", ex);
                        }
                    }
                }
            }

            logger.Debug("END");
        }
コード例 #11
0
        public DocsPaVO.documento.FileDocumento[] outFileRequest(string userName, string pass, string codRuolo, string[] idDocNumber)
        {
            List <DocsPaVO.documento.FileDocumento> lista = new List <DocsPaVO.documento.FileDocumento>();

            DocsPaVO.utente.UserLogin user = new DocsPaVO.utente.UserLogin();
            user.UserName = userName;
            user.Password = pass;
            DocsPaVO.utente.UserLogin.LoginResult result;
            string ipaddress = string.Empty;

            DocsPaVO.utente.Utente utente = BusinessLogic.Utenti.Login.loginMethod(user, out result, true, null, out ipaddress);

            if (result == DocsPaVO.utente.UserLogin.LoginResult.OK)
            {
                DocsPaVO.utente.Ruolo ruolo = null;
                foreach (DocsPaVO.utente.Ruolo r in utente.ruoli)
                {
                    if (r.codiceRubrica.ToLower() == codRuolo.ToLower())
                    {
                        ruolo = r;
                        break;
                    }
                }


                if (ruolo != null)
                {
                    string token = GetToken(utente, ruolo);
                    DocsPaVO.utente.InfoUtente infoutente = null;
                    infoutente = getInfoUtenteFromToken(token);
                    DocsPaVO.documento.SchedaDocumento scheda = BusinessLogic.Documenti.DocManager.getDettaglio(infoutente, idDocNumber[0], idDocNumber[0]);


                    foreach (string docnumber in idDocNumber)
                    {
                        DocsPaVO.documento.FileDocumento   filedoc         = null;
                        DocsPaVO.documento.SchedaDocumento schedaDocumento = BusinessLogic.Documenti.DocManager.getDettaglio(infoutente, docnumber, docnumber);
                        for (int i = 0; i < scheda.documenti.Count; i++)
                        {
                            filedoc = BusinessLogic.Documenti.FileManager.getFile((DocsPaVO.documento.FileRequest)scheda.documenti[i], infoutente);
                            lista.Add(filedoc);
                        }

                        for (int i = 0; i < scheda.allegati.Count; i++)
                        {
                            filedoc = BusinessLogic.Documenti.FileManager.getFile((DocsPaVO.documento.FileRequest)scheda.allegati[i], infoutente);
                            lista.Add(filedoc);
                        }
                    }
                }
            }
            return(lista.ToArray());
        }
コード例 #12
0
        public static void write(string fullName, DocsPaVO.documento.FileDocumento fileDocumento)
        {
            string dir = Path.GetDirectoryName(fullName);

            if (!Directory.Exists(dir))
            {
                Directory.CreateDirectory(dir);
            }
            FileStream file = System.IO.File.Create(fullName);

            file.Write(fileDocumento.content, 0, fileDocumento.length);
            file.Flush();
            file.Close();
        }
コード例 #13
0
            public string Put(DocsPaVO.documento.FileDocumento filedoc)
            {
                string name     = System.IO.Path.GetFileNameWithoutExtension(filedoc.name);
                string fileHash = hsmSvc.Session_PutFileToSign(_SessionToken, filedoc.content, name);

                if (!String.IsNullOrEmpty(fileHash))
                {
                    fileListToSign.Add(fileHash);
                    return(fileHash);
                }
                else
                {
                    return(null);
                }
            }
コード例 #14
0
        public DocsPaVO.documento.FileDocumento convertPDF(XmlDocument XMLFile, string XSLUrlPath)
        {
            DocsPaVO.documento.FileDocumento filePdf = new DocsPaVO.documento.FileDocumento();
//			string xslFilePath = "xslfo.xsl";

            XslTransform   tr  = new XslTransform();
            XmlUrlResolver res = new XmlUrlResolver();

            res.Credentials = System.Net.CredentialCache.DefaultCredentials;
            System.IO.StringWriter sw = new System.IO.StringWriter();
//			tr.Load(xslFilePath,res);
            tr.Load(XSLUrlPath, res);

            tr.Transform(XMLFile.CreateNavigator(), null, sw, res);

            string fullfodoc = sw.ToString();

            InputSource           source = new InputSource(new java.io.StringReader(fullfodoc));
            ByteArrayOutputStream output = new ByteArrayOutputStream();
            Driver driver = new Driver(source, output);

            driver.setRenderer(Driver.RENDER_PDF);
            driver.run();
            output.close();

            int sz = output.buf.Length;

            byte[] pdf = new byte[sz];
            for (int i = 0; i < sz; i++)
            {
                pdf[i] = (byte)output.buf[i];
            }

            filePdf.content        = pdf;
            filePdf.estensioneFile = "pdf";
            filePdf.name           = "stampaOrganigramma";
            filePdf.fullName       = "stampaOrganigramma.pdf";
            filePdf.length         = (int)pdf.Length;
            filePdf.contentType    = "application/pdf";

//			FileStream fs = new FileStream("filePdf.pdf",FileMode.Create);
//			BinaryWriter bw = new BinaryWriter(fs);
//			bw.Write(pdf);
//			bw.Close();
//			fs.Close();

            return(filePdf);
        }
コード例 #15
0
        public static DocsPaVO.documento.FileDocumento Create(DocsPaVO.utente.InfoUtente userInfo, string idDocument, TipoRicevuta tipo)
        {
            DocsPaVO.documento.FileDocumento fdoc = new DocsPaVO.documento.FileDocumento();

            switch (tipo)
            {
            case TipoRicevuta.PresaVisione:
                fdoc = CreaRicevutaPresaVisione(userInfo, idDocument);
                break;

            default:
                fdoc = null;
                break;
            }

            return(fdoc);
        }
コード例 #16
0
        public static DocsPaVO.Procedimento.Report.ReportProcedimentoResponse GetProcedimentiReport(DocsPaVO.Procedimento.Report.ReportProcedimentoRequest request)
        {
            DocsPaVO.Procedimento.Report.ReportProcedimentoResponse response = new DocsPaVO.Procedimento.Report.ReportProcedimentoResponse();

            try
            {
                DocsPaVO.documento.FileDocumento report = new DocsPaVO.documento.FileDocumento();

                DocsPaDB.Query_DocsPAWS.Procedimenti proc = new DocsPaDB.Query_DocsPAWS.Procedimenti();

                List <DocsPaVO.filtri.FiltroRicerca> filters = new List <DocsPaVO.filtri.FiltroRicerca>();

                filters.Add(new DocsPaVO.filtri.FiltroRicerca()
                {
                    argomento = "ID_TIPO_FASC", valore = request.IdProcedimento
                });
                filters.Add(new DocsPaVO.filtri.FiltroRicerca()
                {
                    argomento = "ANNO", valore = request.Anno
                });

                List <DettaglioProcedimento> items = proc.GetProcedimentiReport(filters);

                if (items.Count > 0)
                {
                    BusinessLogic.Modelli.AsposeModelProcessor.PdfModelProcessor processor = new Modelli.AsposeModelProcessor.PdfModelProcessor();

                    report = processor.CreaReportProcedimentoSingolo(request, items);

                    response.Doc = report;
                }

                response.Success = true;
            }
            catch (Exception ex)
            {
                logger.Error("Errore in GetProcedimentiReport: ", ex);
                response.Doc     = null;
                response.Success = false;
            }

            return(response);
        }
コード例 #17
0
        private static DocsPaVO.documento.FileDocumento GetStampaProfiloRTF(DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.documento.SchedaDocumento schedaDocumento)
        {
            logger.Debug("GetStampaProfiloRTF");

            string reportData = ReportUtils.stringFile(AppDomain.CurrentDomain.BaseDirectory + @"\report\schedaDoc\schedaProfiloDoc.txt");

            reportData = reportData.Replace("XIDDOC", schedaDocumento.docNumber);
            reportData = reportData.Replace("XDTACREAZIONE", schedaDocumento.dataCreazione);
            reportData = reportData.Replace("XOGG", schedaDocumento.oggetto.descrizione);

            string paroleChiavi = string.Empty;

            for (int i = 0; i < schedaDocumento.paroleChiave.Count; i++)
            {
                if (paroleChiavi != string.Empty)
                {
                    paroleChiavi += "; ";
                }

                paroleChiavi += ((DocsPaVO.documento.ParolaChiave)schedaDocumento.paroleChiave[i]).descrizione;
            }

            reportData = reportData.Replace("XPAROLECHIAVI", paroleChiavi);
            reportData = reportData.Replace("XNOTE", BusinessLogic.Note.NoteManager.GetUltimaNotaAsString(infoUtente, new DocsPaVO.Note.AssociazioneNota(DocsPaVO.Note.AssociazioneNota.OggettiAssociazioniNotaEnum.Documento, schedaDocumento.systemId)));

            string tipoAtto = string.Empty;

            if (schedaDocumento.tipologiaAtto != null)
            {
                tipoAtto = schedaDocumento.tipologiaAtto.descrizione;
            }

            reportData = reportData.Replace("XTIPODOC", tipoAtto);

            DocsPaVO.documento.FileDocumento retValue = new DocsPaVO.documento.FileDocumento();

            retValue.content     = ReportUtils.toByteArray(reportData);
            retValue.length      = retValue.content.Length;
            retValue.contentType = "application/rtf";
            retValue.name        = "report.rtf";

            return(retValue);
        }
コード例 #18
0
        public static string SendFileToSdi(DocsPaVO.documento.FileDocumento fileDoc)
        {
            string idSdi = string.Empty;

            RicezioneFattureServices.DPAConnectorClient       sdi    = new RicezioneFattureServices.DPAConnectorClient();
            RicezioneFattureServices.InviaFatturaToSdiRequest sdiReq = new RicezioneFattureServices.InviaFatturaToSdiRequest();

            sdiReq.File     = fileDoc.content;
            sdiReq.FileName = fileDoc.name;

            RicezioneFattureServices.InviaFatturaToSdiResponse sdiRes = sdi.InviaFatturaToSdi(sdiReq);

            if (sdiRes.Success)
            {
                idSdi = sdiRes.SdI_Identifier;
            }

            return(idSdi);
        }
コード例 #19
0
        public static string SendFileToSdiViaPec(DocsPaVO.documento.FileDocumento fileDoc, string docnumber)
        {
            try
            {
                RicezioneFattureServices.DPAConnectorClient             sdi    = new RicezioneFattureServices.DPAConnectorClient();
                RicezioneFattureServices.InviaFatturaToSdiViaPecRequest sdiReq = new RicezioneFattureServices.InviaFatturaToSdiViaPecRequest();

                sdiReq.File         = fileDoc.content;
                sdiReq.FileName     = fileDoc.name;
                sdiReq.EmailSubject = string.Format("Invio Fattura Elettronica a SDI via PEC #{0}#", docnumber);
                sdiReq.EmailBody    = "Si invia via PEC la fattura elettronica";
                RicezioneFattureServices.InviaFatturaToSdiViaPecResponse sdiRes = sdi.InviaFatturaToSdiViaPec(sdiReq);

                return(string.Format("{0}:{1}", sdiRes.Success, sdiRes.ErrorMessage));
            }
            catch (Exception ex)
            {
                return(string.Format("{0}:{1}", "False", ex.Message));
            }
        }
コード例 #20
0
        public static RegistroAccessiReportResponse PubblicaRegistroAccessi(RegistroAccessiReportRequest request)
        {
            logger.Debug("BEGIN");

            RegistroAccessiReportResponse response = new RegistroAccessiReportResponse();

            try
            {
                // Lista dei report da produrre
                List <DocsPaVO.documento.FileDocumento> reportList = new List <DocsPaVO.documento.FileDocumento>();

                // Accesso documentale
                reportList.AddRange(RegistroAccessiGetReport(request.filters, "Accesso Documentale"));

                // Accesso generalizzato e civico
                reportList.AddRange(RegistroAccessiGetReport(request.filters, "Accesso Generalizzato e Civico"));

                // Archivio da restituire
                DocsPaVO.documento.FileDocumento fileDoc = new DocsPaVO.documento.FileDocumento();
                fileDoc.contentType    = "application/octet-stream";
                fileDoc.name           = String.Format("Registro_Accessi_{0}.zip", DateTime.Now.ToString("yyyyMMdd"));
                fileDoc.fullName       = String.Format("Registro_Accessi_{0}.zip", DateTime.Now.ToString("yyyyMMdd"));
                fileDoc.estensioneFile = "zip";

                fileDoc.content = RegistroAccessiCreateZipArchive(reportList);
                fileDoc.length  = fileDoc.content.Length;

                response.document = fileDoc;
                response.success  = true;
            }
            catch (Exception ex)
            {
                logger.DebugFormat("Errore in RegistroAccessiManager>PubblicaRegistroAccessi.\r\n{0}\r\n{1}", ex.Message, ex.StackTrace);
                response.success  = false;
                response.document = null;
            }

            logger.Debug("END");

            return(response);
        }
コード例 #21
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="fileManager"></param>
        /// <param name="version"></param>
        /// <returns></returns>
        public static DocsPaVO.documento.FileRequest CopyToRepository(SessionRepositoryFileManager fileManager, DocsPaVO.documento.FileRequest version)
        {
            DocsPaVO.documento.FileRequest result = null;

            version.repositoryContext = null;

            if (fileManager.ExistFile(version))
            {
                // Reperimento del file dal repository di sessione
                DocsPaVO.documento.FileDocumento document = fileManager.GetFile(version);

                // Inserimento del file nel repository documentale
                result = BusinessLogic.Documenti.FileManager.putFile(version, document, fileManager.Context.Owner);
            }
            else
            {
                result = version;
            }

            return(result);
        }
コード例 #22
0
        public static DocsPaVO.documento.FileDocumento read(string fullName)
        {
            DocsPaVO.documento.FileDocumento fileDoc = new DocsPaVO.documento.FileDocumento();

            fileDoc.name     = Path.GetFileName(fullName);
            fileDoc.path     = Path.GetDirectoryName(fullName);
            fileDoc.fullName = fullName;

            if (!System.IO.File.Exists(fileDoc.fullName))
            {
                logger.Error("File non trovato: " + fileDoc.fullName);
                return(null);
            }
            FileStream file = System.IO.File.Open(fileDoc.fullName, FileMode.Open);

            fileDoc.length  = (int)file.Length;
            fileDoc.content = new Byte[fileDoc.length];
            file.Read(fileDoc.content, 0, fileDoc.length);
            file.Close();
            return(fileDoc);
        }
コード例 #23
0
 /// <summary>
 /// Ritorna true se in un file PDF sono presenti delle firme pades
 /// </summary>
 /// <param name="fileDoc"></param>
 /// <returns></returns>
 public static bool IsPdfPades(DocsPaVO.documento.FileDocumento fileDoc)
 {
     try
     {
         int numSig = 0;
         dpaItextSharp.text.pdf.PdfReader  r  = new dpaItextSharp.text.pdf.PdfReader(fileDoc.content);
         dpaItextSharp.text.pdf.AcroFields af = r.AcroFields;
         if (af != null)
         {
             numSig = af.GetSignatureNames().Count;
             if (numSig > 0)
             {
                 return(true);
             }
         }
         return(false);
     }
     catch
     {
         return(false);
     }
 }
コード例 #24
0
        /// <summary>
        /// Funzione per l'invocazione del servizio offerto da Adobe LivCycle di conversione PDF sincrona
        /// </summary>
        /// <param name="docToConvert">Le informazioni sul documento da convertire</param>
        /// <returns>Le informazioni sul documento convertito</returns>
        public static DocsPaVO.documento.FileDocumento GeneratePDFInSyncMod(DocsPaVO.documento.FileDocumento docToConvert)
        {
            DocsPaVO.documento.FileDocumento retVal = null;
            //luluciani per ticket INC000000422959
            string ext = string.Empty;

            if (docToConvert != null && !string.IsNullOrEmpty(docToConvert.name))
            {
                ext = System.IO.Path.GetExtension(docToConvert.name);

                logger.DebugFormat("ext file conversione sincrona {0}", ext);

                if (!string.IsNullOrEmpty(ext) && ext.ToLower().Equals(".htm"))
                {
                    string fileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(docToConvert.name);

                    docToConvert.name = fileNameWithoutExtension + ".html";
                }
            }
            logger.DebugFormat("Inizio conversione sincrona del file {0}", docToConvert.name);
            try
            {
                // Richiamiamo il servizio per la conversione sincrona e restituiamo l'oggetto con le
                // informaizoni sul file convertito
                retVal = LCServices.generatePdfService(docToConvert);

                //ABBATANGELI LINEARIZZAZIONE
                retVal = BusinessLogic.Documenti.FileManager.LinearizzePDFContent(retVal);
                //FINE LINEARIZZAZIONE
            }
            catch (Exception e)
            {
                logger.Debug("Errore in LiveCycle BusinessLogic - metodo: GeneratePDFInSyncMod", e);
                return(null);
            }

            logger.DebugFormat("File {0} convertito correttamente.", docToConvert.name);
            return(retVal);
        }
コード例 #25
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="infoUtente"></param>
        /// <param name="numeroDocumento"></param>
        /// <param name="fileName"></param>
        /// <param name="fileContent"></param>
        public static void SetFile(DocsPaVO.utente.InfoUtente infoUtente, string numeroDocumento, string fileName, byte[] fileContent)
        {
            DocsPaVO.documento.SchedaDocumento schedaDocumento = BusinessLogic.Documenti.DocManager.getDettaglio(infoUtente, numeroDocumento, numeroDocumento);

            DocsPaVO.documento.FileRequest fileRequest = null;

            if (schedaDocumento.documenti.Count > 0)
            {
                // Reperimento ultima versione del documento
                fileRequest = (DocsPaVO.documento.FileRequest)schedaDocumento.documenti[0];

                if (fileRequest.fileSize != "0")
                {
                    // Se per l'ultima versione del documento è stato acquisito un file,
                    // viene creata nuova versione per il documento
                    fileRequest             = new DocsPaVO.documento.FileRequest();
                    fileRequest.fileName    = fileName;
                    fileRequest.docNumber   = numeroDocumento;
                    fileRequest.descrizione = string.Empty;

                    fileRequest = BusinessLogic.Documenti.VersioniManager.addVersion(fileRequest, infoUtente, false);
                }
                else
                {
                    fileRequest.fileName = fileName;
                }
            }

            DocsPaVO.documento.FileDocumento fileDocument = new DocsPaVO.documento.FileDocumento
            {
                name           = fileName,
                estensioneFile = System.IO.Path.GetExtension(fileName).Replace(".", string.Empty),
                content        = fileContent,
                length         = fileContent.Length
            };

            fileRequest = BusinessLogic.Documenti.FileManager.putFile(fileRequest, fileDocument, infoUtente);
        }
コード例 #26
0
        public static bool CheckNumSignature(DocsPaVO.documento.FileDocumento fileDoc)
        {
            bool result  = true;
            int  numSign = 0;

            try
            {
                if (fileDoc != null && fileDoc.signatureResult != null && fileDoc.signatureResult.PKCS7Documents != null)
                {
                    numSign = fileDoc.signatureResult.PKCS7Documents.Count();
                    dpaItextSharp.text.pdf.PdfReader pdfReader = new dpaItextSharp.text.pdf.PdfReader(fileDoc.content);

                    PdfDictionary top = (PdfDictionary)PdfReader.GetPdfObjectRelease(pdfReader.Catalog.Get(PdfName.ACROFORM));
                    if (top == null)
                    {
                        return(true);
                    }
                    PdfArray arrfds = (PdfArray)PdfReader.GetPdfObjectRelease(top.Get(PdfName.FIELDS));
                    if (arrfds != null && arrfds.Size > numSign)
                    {
                        for (int i = 0; i < arrfds.Size; i++)
                        {
                            if (arrfds.ArrayList[i].GetType() == typeof(dpaItextSharp.text.pdf.PdfNull))
                            {
                                return(false);
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                result = true;
            }

            return(result);
        }
コード例 #27
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="fileManager"></param>
        /// <param name="versions"></param>
        /// <returns></returns>
        public static DocsPaVO.documento.FileRequest[] CopyToRepository(SessionRepositoryFileManager fileManager, DocsPaVO.documento.FileRequest[] versions)
        {
            List <DocsPaVO.documento.FileRequest> newVersions = new List <DocsPaVO.documento.FileRequest>();
            string tmpVersionLabel;

            foreach (DocsPaVO.documento.FileRequest version in versions)
            {
                tmpVersionLabel = version.versionLabel;

                version.repositoryContext = null;

                if (fileManager.ExistFile(version))
                {
                    // Reperimento del file dal repository di sessione
                    DocsPaVO.documento.FileDocumento document = fileManager.GetFile(version);

                    // Inserimento del file nel repository documentale
                    DocsPaVO.documento.FileRequest result = BusinessLogic.Documenti.FileManager.putFile(version, document, fileManager.Context.Owner);

                    if (!string.IsNullOrEmpty(tmpVersionLabel) && result != null)
                    {
                        result.versionLabel = tmpVersionLabel;
                    }

                    newVersions.Add(result);

                    // Rimozione del file dal repository di sessione
                    version.repositoryContext = null;
                }
                else
                {
                    newVersions.Add(version);
                }
            }

            return(newVersions.ToArray());
        }
コード例 #28
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="idDocumento"></param>
        /// <param name="hashDb"></param>
        /// <param name="hashFile"></param>
        protected void LoadHashDocumento(string idDocumento, out string hashDb, out string hashFile)
        {
            hashDb   = string.Empty;
            hashFile = string.Empty;

            DocsPaVO.documento.SchedaDocumento sd = BusinessLogic.Documenti.DocManager.getDettaglioNoSecurity(this._infoUtente, idDocumento);

            DocsPaVO.documento.FileRequest fr = sd.documenti[0] as DocsPaVO.documento.FileRequest;

            if (fr != null)
            {
                DocsPaVO.documento.FileDocumento fd = BusinessLogic.Documenti.FileManager.getFileFirmato(fr, this._infoUtente, false);

                using (DocsPaDB.Query_DocsPAWS.Documenti documentiDb = new DocsPaDB.Query_DocsPAWS.Documenti())
                    documentiDb.GetImpronta(out hashDb, fr.versionId, idDocumento);

                hashFile = this.GetHash256(fd.content);

                if (hashFile != hashDb)
                {
                    hashFile = this.GetHash128(fd.content);
                }
            }
        }
コード例 #29
0
        public static DocsPaVO.Conservazione.PARER.Report.ReportMonitoraggioPolicyResponse ReportMonitoraggioPolicy(DocsPaVO.Conservazione.PARER.Report.ReportMonitoraggioPolicyRequest request)
        {
            ReportMonitoraggioPolicyResponse response = new ReportMonitoraggioPolicyResponse();

            logger.Debug("BEGIN");

            try
            {
                DocsPaVO.documento.FileDocumento doc = new DocsPaVO.documento.FileDocumento();

                List <DocsPaVO.filtri.FiltroRicerca> filters = new List <DocsPaVO.filtri.FiltroRicerca>();
                filters.Add(new DocsPaVO.filtri.FiltroRicerca()
                {
                    argomento = "id_amm", valore = request.IdAmm
                });
                filters.Add(new DocsPaVO.filtri.FiltroRicerca()
                {
                    argomento = "codice_policy", valore = request.Codice
                });
                filters.Add(new DocsPaVO.filtri.FiltroRicerca()
                {
                    argomento = "descrizione_policy", valore = request.Descrizione
                });
                filters.Add(new DocsPaVO.filtri.FiltroRicerca()
                {
                    argomento = "data_esecuzione_tipo", valore = request.TipoDataEsecuzione
                });
                filters.Add(new DocsPaVO.filtri.FiltroRicerca()
                {
                    argomento = "data_esecuzione_da", valore = request.DataEsecuzioneFrom
                });
                filters.Add(new DocsPaVO.filtri.FiltroRicerca()
                {
                    argomento = "data_esecuzione_a", valore = request.DataEsecuzioneTo
                });

                string rangeEstrazione = string.Empty;
                if (request.TipoDataEsecuzione == "S" && !string.IsNullOrEmpty(request.DataEsecuzioneFrom))
                {
                    rangeEstrazione = "Policy eseguite il giorno " + request.DataEsecuzioneFrom;
                }
                else if (request.TipoDataEsecuzione == "R")
                {
                    if (!string.IsNullOrEmpty(request.DataEsecuzioneFrom))
                    {
                        rangeEstrazione = "Policy eseguite dal giorno " + request.DataEsecuzioneFrom;
                        if (!string.IsNullOrEmpty(request.DataEsecuzioneTo))
                        {
                            rangeEstrazione = rangeEstrazione + " al giorno " + request.DataEsecuzioneTo;
                        }
                    }
                }
                else if (request.TipoDataEsecuzione == "M")
                {
                    rangeEstrazione = "Policy eseguite nel mese corrente";
                }

                DocsPaVO.Report.PrintReportRequest printRequest = new DocsPaVO.Report.PrintReportRequest();
                printRequest.ContextName   = "AmmMonitoraggioPolicy";
                printRequest.ReportKey     = "AmmMonitoraggioPolicy";
                printRequest.Title         = "Report monitoraggio policy";
                printRequest.SubTitle      = rangeEstrazione;
                printRequest.SearchFilters = filters;
                printRequest.ReportType    = DocsPaVO.Report.ReportTypeEnum.Excel;

                doc = BusinessLogic.Reporting.ReportGeneratorCommand.GetReport(printRequest).Document;
                logger.Debug("Generato documento - dimensioni " + doc.content.Length);

                response.Document = doc;
            }
            catch (Exception ex)
            {
                logger.Debug(ex);
            }

            logger.Debug("END");
            return(response);
        }
コード例 #30
0
        public static DocsPaVO.documento.FileDocumento generatePdfService(DocsPaVO.documento.FileDocumento fileDocumento)
        {
            try
            {
                //Istanzio il servizio
                GeneratePdfService.GeneratePDFServiceService generatePdf = LCServicesManager.getGeneratePdfService();

                if (generatePdf != null)
                {
                    //Popolo il binaryData del BLOB
                    GeneratePdfService.BLOB inDoc = new GeneratePdfService.BLOB();
                    inDoc.binaryData = fileDocumento.content;

                    //Sepcifico le opzioni PDF e Security
                    //String adobePDFSettings = "Standard";
                    //String securitySettings = "No Security";
                    //String fileTypeSettings = "Standard";
                    String adobePDFSettings = "PDFA1b 2005 CMYK";
                    String securitySettings = "No Security";
                    String fileTypeSettings = "Standard PITRE";
                    //String fileTypeSettings = "Standard OCR";
                    byte[] resultBinaryFile = null;

                    //Converto in pdf
                    GeneratePdfService.mapItem[] createPDFResults = generatePdf.CreatePDF(inDoc, fileDocumento.name, fileTypeSettings, adobePDFSettings, securitySettings, null, null);
                    generatePdf.Dispose();

                    //Recupero il file convertito in pdf
                    for (int count = 0; count < createPDFResults.Length; ++count)
                    {
                        //Recupero un elemento dalla mappa
                        GeneratePdfService.mapItem mapEntry = createPDFResults[count];
                        String mapKey = mapEntry.key as String;

                        //La chiave della mappa del documento convertito sarà "ConvertedDoc"
                        if (mapKey.Equals("ConvertedDoc"))
                        {
                            GeneratePdfService.BLOB resultBlob = mapEntry.value as GeneratePdfService.BLOB;
                            resultBinaryFile = resultBlob.binaryData;
                        }
                    }

                    fileDocumento.fullName    = System.IO.Path.GetFileNameWithoutExtension(fileDocumento.fullName) + ".pdf";
                    fileDocumento.name        = System.IO.Path.GetFileNameWithoutExtension(fileDocumento.name) + ".pdf";
                    fileDocumento.contentType = "application/pdf";
                    fileDocumento.content     = resultBinaryFile;

                    //Faillace, segnalazione tiket 266571
                    //Inserita l'estensione e modifica nome file orginale.
                    fileDocumento.estensioneFile = "pdf";
                    if (!String.IsNullOrEmpty(fileDocumento.nomeOriginale))
                    {
                        fileDocumento.nomeOriginale = System.IO.Path.GetFileNameWithoutExtension(fileDocumento.nomeOriginale) + ".pdf";
                    }

                    return(fileDocumento);
                }
                else
                {
                    return(null);
                }
            }
            catch (Exception e)
            {
                logger.Error("Errore in LiveCycle  - LCServices - metodo: generatePdfService()", e);
                return(null);
            }
        }