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); }
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); } }
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); }
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); }
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); }
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); }
/// <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); } }
/// <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); }
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); }
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"); }
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()); }
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(); }
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); } }
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); }
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); }
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); }
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); }
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); }
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)); } }
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); }
/// <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); }
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); }
/// <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); } }
/// <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); }
/// <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); }
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); }
/// <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()); }
/// <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); } } }
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); }
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); } }