/// <summary> /// Save delle modifiche apportate al documento /// </summary> /// <param name="schedaDocumento"></param> /// <param name="ufficioReferenteEnabled"></param> /// <param name="ufficioReferenteSaved"></param> /// <returns></returns> public bool SalvaDocumento(DocsPaVO.documento.SchedaDocumento schedaDocumento, bool ufficioReferenteEnabled, out bool ufficioReferenteSaved) { //Performance.PerformanceLogWriter.CreatePerformanceLogWriter(@"c:\temp\DocumentManager.txt"); //Performance.PerformanceLogWriter log = new Performance.PerformanceLogWriter(); //log.StartLogEntry("SalvaDocumento"); bool retValue = false; ufficioReferenteSaved = false; try { //log.StartLogEntry("SalvaDocumento_ETDOCS", true); retValue = this.DocumentManagerETDOCS.SalvaDocumento(schedaDocumento, ufficioReferenteEnabled, out ufficioReferenteSaved); //log.EndLogEntry(); //log.StartLogEntry("SalvaDocumento_DCTM", true); if (retValue) { retValue = this.DocumentManagerDocumentum.SalvaDocumento(schedaDocumento, ufficioReferenteEnabled, out ufficioReferenteSaved); } //log.EndLogEntry(); } catch (Exception ex) { string errorMessage = string.Format("Errore nel salvataggio dei dati del documento: {0}", ex.Message); logger.Debug(errorMessage, ex); retValue = false; } //Performance.PerformanceLogWriter.FlushPerformanceLogWriter(); return(retValue); }
/// <summary> /// /// </summary> /// <param name="schedaDocumento"></param> /// <param name="ruolo"></param> /// <param name="ruoliSuperiori"></param> /// <returns></returns> public bool CreateDocumentoGrigio(DocsPaVO.documento.SchedaDocumento schedaDocumento, DocsPaVO.utente.Ruolo ruolo, out DocsPaVO.utente.Ruolo[] ruoliSuperiori, string conCopia = null) { logger.Info("BEGIN"); //Performance.PerformanceLogWriter.CreatePerformanceLogWriter(@"c:\temp\DocumentManager.txt"); //Performance.PerformanceLogWriter log = new Performance.PerformanceLogWriter(); //log.StartLogEntry("CreateDocumentoGrigio"); bool retValue = false; ruoliSuperiori = null; try { //log.StartLogEntry("CreateDocumentoGrigio_ETDOCS", true); retValue = this.DocumentManagerETDOCS.CreateDocumentoGrigio(schedaDocumento, ruolo, out ruoliSuperiori); //log.EndLogEntry(); //log.StartLogEntry("CreateDocumentoGrigio_DCTM", true); //log.EndLogEntry(); } catch (Exception ex) { string errorMessage = string.Format("Errore nella creazione di un documento grigio: {0}", ex.Message); logger.Debug(errorMessage, ex); retValue = false; } //log.EndLogEntry(); //Performance.PerformanceLogWriter.FlushPerformanceLogWriter(); logger.Info("END"); return(retValue); }
public static string convertiTipoPoto(DocsPaVO.documento.SchedaDocumento schDoc) { string retval = schDoc.tipoProto; switch (schDoc.tipoProto) { case "A": case "P": case "I": { retval = "Protocollato"; if (schDoc.protocollo != null) { if (string.IsNullOrEmpty(schDoc.protocollo.segnatura)) { retval = "Predisposto"; } } } break; case "G": retval = "Grigio"; break; } return(retval); }
/// <summary> /// Creazione di un nuovo documento per la stampa registro. /// </summary> /// <param name="schedaDocumento"></param> /// <param name="ruolo"></param> /// <param name="ruoliSuperiori"></param> /// <returns>ID del documento o 'null' se si è verificato un errore</returns> public bool CreateDocumentoStampaRegistro(DocsPaVO.documento.SchedaDocumento schedaDocumento, DocsPaVO.utente.Ruolo ruolo, out DocsPaVO.utente.Ruolo[] ruoliSuperiori) { bool retValue = false; ruoliSuperiori = null; try { retValue = this.DocumentManagerETDOCS.CreateDocumentoStampaRegistro(schedaDocumento, ruolo, out ruoliSuperiori); if (retValue) { retValue = this.DocumentManagerHERMES.CreateDocumentoStampaRegistro(schedaDocumento, ruolo); } } catch (Exception ex) { retValue = false; string errorMessage = string.Format("Errore nella creazione di un documento stampa registro: {0}", ex.Message); logger.Debug(errorMessage, ex); } return(retValue); }
// // Mev Cs 1.4 - Esibizione /// <summary> /// /// </summary> /// <param name="infoUtente"></param> /// <param name="idProfile"></param> /// <param name="idProject"></param> /// <param name="docNumber"></param> /// <param name="tipoOggetto"></param> /// <param name="idPolicy"></param> /// <returns></returns> public static string CreateAndAddDocInAreaEsibizione( DocsPaVO.utente.InfoUtente infoUtente, string idProfile, string idProject, string docNumber, string tipoOggetto, string idConservazione, out DocsPaVO.documento.SchedaDocumento sd ) { string result = String.Empty; using (DocsPaDB.TransactionContext transactionContext = new DocsPaDB.TransactionContext()) { DocsPaDB.Query_DocsPAWS.Conservazione doc = new DocsPaDB.Query_DocsPAWS.Conservazione(); logger.DebugFormat("ADDAREAESIBIZIONE START"); result = doc.addAreaEsibizione(string.Empty, idProfile, idProject, docNumber, infoUtente, tipoOggetto, idConservazione, out sd); logger.DebugFormat("ADDAREAESIBIZIONE END -> RESULT {0}", result); if (result == "-1") { logger.Debug("Errore nella generazione dell'area conservazione (CreateAndAddDocInAreaEsibizione)"); throw new Exception(); } transactionContext.Complete(); return(result); } }
/// <summary> /// Protocollazione di un documento predisposto /// </summary> /// <param name="schedaDocumento"></param> /// <param name="ruolo"></param> /// <param name="risultatoProtocollazione"></param> /// <returns></returns> public bool ProtocollaDocumentoPredisposto(DocsPaVO.documento.SchedaDocumento schedaDocumento, DocsPaVO.utente.Ruolo ruolo, out DocsPaVO.documento.ResultProtocollazione risultatoProtocollazione) { bool retValue = false; risultatoProtocollazione = ResultProtocollazione.APPLICATION_ERROR; try { retValue = this.DocumentManagerETDOCS.ProtocollaDocumentoPredisposto(schedaDocumento, ruolo, out risultatoProtocollazione); if (retValue) { retValue = this.DocumentManagerDocumentum.ProtocollaDocumentoPredisposto(schedaDocumento, ruolo, out risultatoProtocollazione); } } catch (Exception ex) { string errorMessage = string.Format("Errore nella protocollazione del documento: {0}", ex.Message); logger.Debug(errorMessage, ex); retValue = false; risultatoProtocollazione = ResultProtocollazione.APPLICATION_ERROR; } return(retValue); }
private DocsPaVO.InstanceAccess.Metadata.Allegato[] getAllegati(DocsPaVO.documento.SchedaDocumento schDoc, InstanceAccessDocument doc, DocsPaVO.utente.InfoUtente infoUtente) { if (schDoc.allegati == null) { return(null); } if (schDoc.allegati.Count == 0) { return(null); } List <DocsPaVO.InstanceAccess.Metadata.Allegato> lstAll = new List <DocsPaVO.InstanceAccess.Metadata.Allegato>(); foreach (object a in schDoc.allegati) { DocsPaVO.InstanceAccess.Metadata.Allegato allegato = new DocsPaVO.InstanceAccess.Metadata.Allegato(); DocsPaVO.documento.Allegato all = a as DocsPaVO.documento.Allegato; if (all != null && (from att in doc.ATTACHMENTS where att.ID_ATTACH.Equals(all.docNumber) select att.ENABLE).FirstOrDefault()) { allegato.Descrizione = all.descrizione; allegato.ID = all.docNumber; //allegato.Tipo = "manuale"; //Cablato , per ora.. poi si vedrà string tipoAllegato = ""; switch (all.TypeAttachment) { case 1: tipoAllegato = "Allegato Utente"; break; case 2: tipoAllegato = "Allegato PEC"; break; case 3: tipoAllegato = "Allegato IS"; break; case 4: tipoAllegato = "Allegato Esterno"; break; default: tipoAllegato = "Non specificato"; break; } allegato.Tipo = tipoAllegato; if (!string.IsNullOrEmpty(all.fileSize) && Convert.ToInt32(all.fileSize) > 0) { FileDocumento fd = BusinessLogic.Documenti.FileManager.getFile(all, infoUtente); allegato.File = getFileDetail(fd, all, infoUtente); } lstAll.Add(allegato); } } return(lstAll.ToArray()); }
private static void EstraiDatiProtoEntrata(DocsPaVO.documento.SchedaDocumento schDoc, Registrazione registrazione) { DocsPaVO.documento.ProtocolloEntrata protEnt = schDoc.protocollo as DocsPaVO.documento.ProtocolloEntrata; if (protEnt != null) { registrazione.ProtocolloMittente = new ProtocolloMittente { Protocollo = protEnt.numero, MezzoSpedizione = protEnt.mezzoSpedizione.ToString(), Data = protEnt.dataProtocollazione }; DocsPaVO.utente.Corrispondente corr = protEnt.mittente; List <Mittente> mittList = new List <Mittente>(); if (protEnt.mittenti != null) { foreach (object c in protEnt.mittenti) { DocsPaVO.utente.Corrispondente corrItem = c as DocsPaVO.utente.Corrispondente; Mittente m = new Mittente { Codice = corrItem.codiceRubrica, IndirizzoMail = corrItem.email, Descrizione = corrItem.descrizione, ProtocolloMittente = protEnt.numero, DataProtocolloMittente = protEnt.dataProtocolloMittente }; mittList.Add(m); } } if (protEnt.mittenteIntermedio != null) { Mittente m = new Mittente { Codice = protEnt.mittenteIntermedio.codiceRubrica, IndirizzoMail = protEnt.mittenteIntermedio.email, Descrizione = protEnt.mittenteIntermedio.descrizione, ProtocolloMittente = protEnt.numero, DataProtocolloMittente = protEnt.dataProtocolloMittente }; mittList.Add(m); } { Mittente m = new Mittente { Codice = corr.codiceRubrica, IndirizzoMail = corr.email, Descrizione = corr.descrizione, ProtocolloMittente = protEnt.numero, DataProtocolloMittente = protEnt.dataProtocolloMittente }; mittList.Add(m); } registrazione.Mittente = mittList.ToArray(); } }
public XmlDocument(DocsPaVO.documento.FileDocumento fileDoc, DocsPaVO.documento.SchedaDocumento schDoc, DocsPaVO.documento.FileRequest objFileRequest, InstanceAccessDocument instanceDoc, DocsPaVO.utente.InfoUtente infoUtente) { if (this.documento == null) { documento = new DocsPaVO.InstanceAccess.Metadata.Document(); } DocsPaVO.utente.Ruolo ruolo = BusinessLogic.Utenti.UserManager.getRuolo(schDoc.creatoreDocumento.idCorrGlob_Ruolo); //DocsPaVO.utente.InfoUtente infoUtente = BusinessLogic.Utenti.UserManager.GetInfoUtente(BusinessLogic.Utenti.UserManager.getUtente(schDoc.creatoreDocumento.idPeople), ruolo); DocsPaVO.utente.UnitaOrganizzativa unitaOrganizzativa = ruolo.uo; List <DocsPaVO.InstanceAccess.Metadata.UnitaOrganizzativa> uoL = new List <DocsPaVO.InstanceAccess.Metadata.UnitaOrganizzativa>(); DocsPaVO.InstanceAccess.Metadata.UnitaOrganizzativa uoXML = convertiUO(unitaOrganizzativa); uoL.Add(uoXML); documento.SoggettoProduttore = new DocsPaVO.InstanceAccess.Metadata.SoggettoProduttore { Amministrazione = getInfoAmministrazione(ruolo.idAmministrazione), GerarchiaUO = new DocsPaVO.InstanceAccess.Metadata.GerarchiaUO { UnitaOrganizzativa = uoL.ToArray() }, Creatore = getCreatore(schDoc, ruolo) }; documento.IDdocumento = schDoc.systemId; documento.Oggetto = schDoc.oggetto.descrizione; documento.Tipo = convertiTipoPoto(schDoc); // documento.DataCreazione = Utils.formattaData(Utils.convertiData(schDoc.dataCreazione)); documento.DataCreazione = schDoc.dataCreazione; if (schDoc.privato != null && schDoc.privato.Equals("1")) { documento.LivelloRiservatezza = "privato"; } else { documento.LivelloRiservatezza = string.Empty; } if (instanceDoc.ENABLE && fileDoc != null) { documento.File = getFileDetail(fileDoc, objFileRequest, infoUtente); } documento.Registrazione = getRegistrazione(schDoc, ruolo); documento.ContestoArchivistico = getContestoArchivistico(schDoc, ruolo, infoUtente); if (schDoc.template != null) { DocsPaVO.InstanceAccess.Metadata.Tipologia t = new DocsPaVO.InstanceAccess.Metadata.Tipologia { NomeTipologia = schDoc.template.DESCRIZIONE, CampoTipologia = getCampiTipologia(schDoc.template) }; documento.Tipologia = t; } documento.Allegati = getAllegati(schDoc, instanceDoc, infoUtente); documento.TipoRichiesta = instanceDoc.TYPE_REQUEST; }
private static void EstraiDatiProtoInterno(DocsPaVO.documento.SchedaDocumento schDoc, Registrazione registrazione) { DocsPaVO.documento.ProtocolloInterno protInt = schDoc.protocollo as DocsPaVO.documento.ProtocolloInterno; if (protInt != null) { List <Destinatario> destList = new List <Destinatario>(); if (protInt.destinatari != null) { foreach (object c in protInt.destinatari) { DocsPaVO.utente.Corrispondente corrItem = c as DocsPaVO.utente.Corrispondente; Destinatario d = new Destinatario { Codice = corrItem.codiceRubrica, IndirizzoMail = corrItem.email, Descrizione = corrItem.descrizione, MezzoSpedizione = protInt.mezzoSpedizione.ToString() }; destList.Add(d); } } if (protInt.destinatariConoscenza != null) { foreach (object c in protInt.destinatariConoscenza) { DocsPaVO.utente.Corrispondente corrItem = c as DocsPaVO.utente.Corrispondente; Destinatario d = new Destinatario { Codice = corrItem.codiceRubrica, IndirizzoMail = corrItem.email, Descrizione = corrItem.descrizione, MezzoSpedizione = protInt.mezzoSpedizione.ToString() }; destList.Add(d); } } if (protInt.mittente != null) { List <Mittente> mittList = new List <Mittente>(); Mittente m = new Mittente { Codice = protInt.mittente.codiceRubrica, IndirizzoMail = protInt.mittente.email, Descrizione = protInt.mittente.descrizione, ProtocolloMittente = null, DataProtocolloMittente = null }; mittList.Add(m); registrazione.Mittente = mittList.ToArray(); } registrazione.Destinatario = destList.ToArray(); } }
private Metadata.Documento.Allegato[] getAllegati(DocsPaVO.documento.SchedaDocumento schDoc, DocsPaVO.utente.InfoUtente infoUtente) { if (schDoc.allegati == null) { return(null); } if (schDoc.allegati.Count == 0) { return(null); } List <Metadata.Documento.Allegato> lstAll = new List <Documento.Allegato>(); foreach (object a in schDoc.allegati) { DocsPaConservazione.Metadata.Documento.Allegato allegato = new Metadata.Documento.Allegato(); DocsPaVO.documento.Allegato all = a as DocsPaVO.documento.Allegato; if (all != null) { allegato.Descrizione = all.descrizione; allegato.ID = all.docNumber; //allegato.Tipo = "manuale"; //Cablato , per ora.. poi si vedrà string tipoAllegato = ""; switch (all.TypeAttachment) { case 1: tipoAllegato = "Allegato Utente"; break; case 2: tipoAllegato = "Allegato PEC"; break; case 3: tipoAllegato = "Allegato IS"; break; case 4: tipoAllegato = "Allegato Esterno"; break; default: tipoAllegato = "Non specificato"; break; } allegato.Tipo = tipoAllegato; FileDocumento fd = BusinessLogic.Documenti.FileManager.getFile(all, infoUtente); allegato.File = getFileDetail(fd, all, infoUtente); lstAll.Add(allegato); } } return(lstAll.ToArray()); }
/// <summary> /// </summary> /// <param name="schedaDocumento"></param> public InfoDocumento(SchedaDocumento schedaDocumento) { this.mittDest = new ArrayList(); this.idProfile = schedaDocumento.systemId; this.oggetto = schedaDocumento.oggetto.descrizione; this.docNumber = schedaDocumento.docNumber; this.evidenza = schedaDocumento.evidenza; this.privato = schedaDocumento.privato; this.inCestino = schedaDocumento.inCestino; this.allegato = (schedaDocumento.documentoPrincipale != null); this.tipoProto = schedaDocumento.tipoProto; this.dataApertura = schedaDocumento.dataCreazione; if (schedaDocumento.registro != null) { this.codRegistro = schedaDocumento.registro.codice; this.idRegistro = schedaDocumento.registro.systemId; } if (schedaDocumento.protocollo != null) { this.numProt = schedaDocumento.protocollo.numero; this.daProtocollare = schedaDocumento.protocollo.daProtocollare; this.dataApertura = schedaDocumento.protocollo.dataProtocollazione; this.segnatura = schedaDocumento.protocollo.segnatura; if (schedaDocumento.protocollo.GetType().Equals(typeof(DocsPaVO.documento.ProtocolloEntrata))) { DocsPaVO.documento.ProtocolloEntrata pe = (DocsPaVO.documento.ProtocolloEntrata)schedaDocumento.protocollo; this.mittDest.Add(pe.mittente.descrizione); } else if (schedaDocumento.protocollo.GetType().Equals(typeof(DocsPaVO.documento.ProtocolloUscita))) { DocsPaVO.documento.ProtocolloUscita pu = (DocsPaVO.documento.ProtocolloUscita)schedaDocumento.protocollo; for (int i = 0; i < pu.destinatari.Count; i++) { this.mittDest.Add(((DocsPaVO.utente.Corrispondente)pu.destinatari[i]).descrizione); } } } if (schedaDocumento.tipologiaAtto != null) { this.idTipoAtto = schedaDocumento.tipologiaAtto.systemId; this.tipoAtto = schedaDocumento.tipologiaAtto.descrizione; } this.codiceApplicazione = schedaDocumento.codiceApplicazione; }
/// <summary> /// Aggiorna le ACL del documento /// </summary> /// <param name="schedaDocumento"></param> public virtual void RefreshAclDocumento(DocsPaVO.documento.SchedaDocumento schedaDocumento) { try { this._documentManagerETDOCS.RefreshAclDocumento(schedaDocumento); //this._documentManagerDocumentum.RefreshAclDocumento(schedaDocumento); } catch (Exception ex) { string errorMessage = string.Format("Errore in Documentum.RefreshAclDocumento:\n{0}", ex.ToString()); logger.Debug(errorMessage); throw new ApplicationException(errorMessage); } }
/// <summary> /// Annullamento di un protocollo /// </summary> /// <param name="schedaDocumento"></param> /// <param name="protocolloAnnullato"></param> /// <returns></returns> public bool AnnullaProtocollo(ref DocsPaVO.documento.SchedaDocumento schedaDocumento, DocsPaVO.documento.ProtocolloAnnullato protocolloAnnullato) { bool retValue = false; try { retValue = this.DocumentManagerETDOCS.AnnullaProtocollo(ref schedaDocumento, protocolloAnnullato); } catch (Exception ex) { retValue = false; string errorMessage = string.Format("Errore nell'operazione 'AnnullaProtocollo': {0}", ex.Message); logger.Debug(errorMessage, ex); } return(retValue); }
/// <summary> /// Operazione per la creazione di un nuovo protocollo /// /// PreCondizioni: /// - Fornire un oggetto SchedaDocumento valido, completo /// degli attributi e degli oggetti significativi per il protocollo /// (es. numero, dataProtocollo, segnatura, oggetto "Protocollo") /// /// PostCondizioni: /// - Operazione di protocollazione documento effettuata con successo /// /// /// </summary> /// <param name="schedaDocumento">Oggetto contenente i metadati del documento da protocollare</param> /// <param name="ruolo">Ruolo dell'utente che protocolla il documento</param> /// <param name="risultatoProtocollazione">Parametro output: Esito più dettagliato dell'operazione</param> /// <param name="ruoliSuperiori"></param> /// <returns>Boolean, l'operazione di protocollazione è andata a buon fine o meno</returns> public bool CreateProtocollo(DocsPaVO.documento.SchedaDocumento schedaDocumento, DocsPaVO.utente.Ruolo ruolo, out DocsPaVO.documento.ResultProtocollazione risultatoProtocollazione, out DocsPaVO.utente.Ruolo[] ruoliSuperiori, string conCopia = null) { logger.Info("BEGIN"); //Performance.PerformanceLogWriter.CreatePerformanceLogWriter(@"c:\temp\DocumentManager.txt"); // Performance.PerformanceLogWriter log = new Performance.PerformanceLogWriter(); //log.StartLogEntry("CreateProtocollo"); bool retValue = false; risultatoProtocollazione = ResultProtocollazione.APPLICATION_ERROR; ruoliSuperiori = null; try { int t0 = System.Environment.TickCount; //log.StartLogEntry("CreateProtocollo_ETDOCS", true); retValue = this.DocumentManagerETDOCS.CreateProtocollo(schedaDocumento, ruolo, out risultatoProtocollazione, out ruoliSuperiori); //log.EndLogEntry(); int t1 = System.Environment.TickCount - t0; logger.Warn(" TIME_NEED_TO_EXEC_DocumentManagerETDOCS.CreateProtocollo - " + t1); t0 = System.Environment.TickCount; //log.StartLogEntry("CreateProtocollo_DCTM", true); if (retValue) { retValue = this.DocumentManagerDocumentum.CreateProtocollo(schedaDocumento, ruolo, out risultatoProtocollazione); } //log.EndLogEntry(); t1 = System.Environment.TickCount - t0; logger.Warn(" TIME_NEED_TO_EXEC_DocumentManagerDocumentum.CreateProtocollo - " + t1); } catch (Exception ex) { string errorMessage = string.Format("Errore nella protocollazione del documento: {0}", ex.Message); logger.Debug(errorMessage, ex); retValue = false; risultatoProtocollazione = ResultProtocollazione.APPLICATION_ERROR; } //log.EndLogEntry(); //Performance.PerformanceLogWriter.FlushPerformanceLogWriter(); logger.Info("END"); return(retValue); }
private Registrazione getRegistrazione(InfoConservazione infoCons, DocsPaVO.documento.SchedaDocumento schDoc, DocsPaVO.utente.Ruolo ruolo) { if (schDoc.protocollo != null) { Registrazione registrazione = new Registrazione(); registrazione.DataProtocollo = Utils.formattaData(Utils.convertiData(schDoc.protocollo.dataProtocollazione)); registrazione.OraProtocollo = Utils.formattaOra(Utils.convertiData(schDoc.protocollo.dataProtocollazione)); registrazione.NumeroProtocollo = schDoc.protocollo.numero; registrazione.SegnaturaProtocollo = schDoc.protocollo.segnatura; registrazione.TipoProtocollo = schDoc.tipoProto; registrazione.CodiceRF = null; registrazione.DescrizioneRF = null; if (schDoc.datiEmergenza != null) { registrazione.SegnaturaEmergenza = schDoc.datiEmergenza.protocolloEmergenza; } if (schDoc.registro != null) { registrazione.CodiceAOO = schDoc.registro.codRegistro; registrazione.DescrizioneAOO = schDoc.registro.descrizione; } EstraiDatiProtoEntrata(schDoc, registrazione); EstraiDatiProtoUscita(schDoc, registrazione); EstraiDatiProtoInterno(schDoc, registrazione); if (schDoc.protocollatore != null) { DocsPaVO.utente.Utente userProt = UserManager.getUtente(schDoc.protocollatore.utente_idPeople); DocsPaVO.utente.Ruolo ruoloProt = BusinessLogic.Utenti.UserManager.getRuolo(infoCons.IdRuoloInUo); Protocollista protocollista = new Protocollista(); protocollista.DescrizioneUtente = userProt.descrizione; protocollista.CodiceUtente = userProt.userId; protocollista.DescrizioneRuolo = ruoloProt.descrizione; protocollista.CodiceRuolo = ruoloProt.codiceRubrica; protocollista.UOAppartenenza = ruolo.uo.codiceRubrica; registrazione.Protocollista = protocollista; } return(registrazione); } return(null); }
/// <summary> /// Predisposizione di un documento alla protocollazione /// </summary> /// <param name="schedaDocumento"></param> /// <param name="ruolo"></param> /// <returns></returns> public bool PredisponiProtocollazione(DocsPaVO.documento.SchedaDocumento schedaDocumento) { bool retValue = false; try { retValue = this.DocumentManagerETDOCS.PredisponiProtocollazione(schedaDocumento); } catch (Exception ex) { string errorMessage = string.Format("Errore nella predisposizione di un documento alla protocollazione: {0}", ex.Message); logger.Debug(errorMessage, ex); retValue = false; } return(retValue); }
private XmlDocument CreateXmlToAttach(Dictionary <string, string> _dict, DocsPaVO.documento.SchedaDocumento schedaDocPartenza, string root) { try { XmlDocument xDoc = new XmlDocument(); XmlDeclaration xDecl = xDoc.CreateXmlDeclaration("1.0", System.Text.Encoding.UTF8.WebName, null); xDoc.AppendChild(xDecl); //add root node XmlElement xRoot = xDoc.CreateElement("", ClearString(root), ""); xDoc.AppendChild(xRoot); foreach (KeyValuePair <string, string> kvp in _dict) { UTF8Encoding utf8 = new UTF8Encoding(); XmlElement xElem = xDoc.CreateElement(ClearString(kvp.Key.ToString().ToLower())); try { DateTime _dt = new DateTime(); _dt = Convert.ToDateTime(kvp.Value.ToString()); xElem.InnerText = _dt.ToString("yyyy-MM-dd"); } catch { String unicodeString = kvp.Value; Byte[] encodedBytes = utf8.GetBytes(unicodeString); String decodedString = utf8.GetString(encodedBytes); xElem.InnerText = decodedString; } if (!string.IsNullOrEmpty(kvp.Value)) { xRoot.AppendChild(xElem); } } return(xDoc); } catch { return(null); } }
/// <summary> /// Crea la scheda documento Grigio /// </summary> /// <param name="schedaDocumento"></param> /// <param name="ruolo"></param> /// <param name="ruoliSuperiori"></param> /// <returns>True/false sulla creazione del documento</returns> public bool CreateDocumentoGrigio(DocsPaVO.documento.SchedaDocumento schedaDocumento, DocsPaVO.utente.Ruolo ruolo, out DocsPaVO.utente.Ruolo[] ruoliSuperiori, string conCopia = null) { logger.Info("BEGIN"); bool retValue = false; ruoliSuperiori = null; try { retValue = this.DocumentManagerETDOCS.CreateDocumentoGrigio(schedaDocumento, ruolo, out ruoliSuperiori); } catch (Exception ex) { string errorMessage = string.Format("Errore nella creazione di un documento grigio: {0}", ex.Message); logger.Debug(errorMessage, ex); retValue = false; } logger.Info("END"); return(retValue); }
/// <summary> /// Reperimento file associato al documento /// </summary> /// <param name="infoUtente"></param> /// <param name="docNumber"></param> /// <returns></returns> private static DocsPaVO.documento.FileDocumento GetFile(DocsPaVO.utente.InfoUtente infoUtente, string docNumber) { DocsPaVO.documento.SchedaDocumento schedaDocumento = BusinessLogic.Documenti.DocManager.getDettaglioNoSecurity(infoUtente, docNumber); DocsPaVO.documento.FileRequest fileRequest = (DocsPaVO.documento.FileRequest)schedaDocumento.documenti[0]; DocsPaVO.documento.FileDocumento retVal = null; try { if (IsFileAcquired(fileRequest)) { //retVal = BusinessLogic.Documenti.FileManager.getFile(fileRequest, infoUtente); //prelevo il file firmato se presente e non lo sbustato retVal = BusinessLogic.Documenti.FileManager.getFileFirmato(fileRequest, infoUtente, false); // Download del file associato al documento } } catch (Exception ex) { } return(retVal); }
public bool CreateProtocollo(DocsPaVO.documento.SchedaDocumento schedaDocumento, DocsPaVO.utente.Ruolo ruolo, out DocsPaVO.documento.ResultProtocollazione risultatoProtocollazione, out DocsPaVO.utente.Ruolo[] ruoliSuperiori, string copiaDoc = null) { logger.Info("BEGIN"); //Performance.PerformanceLogWriter.CreatePerformanceLogWriter(@"c:\temp\DocumentManager.txt"); //Performance.PerformanceLogWriter log = new Performance.PerformanceLogWriter(); //log.StartLogEntry("CreateProtocollo"); logger.Debug("(SP) - inizio metodo di protocollazione semplice"); bool retValue = false; risultatoProtocollazione = ResultProtocollazione.APPLICATION_ERROR; ruoliSuperiori = null; try { retValue = this.DocumentManagerSP.CreateProtocollo(schedaDocumento, ruolo, out risultatoProtocollazione, out ruoliSuperiori); //log.StartLogEntry("CreateProtocollo_DCTM", true); if (retValue) { retValue = this.DocumentManagerETDOCS.CreateProtocollo(schedaDocumento, ruolo, out risultatoProtocollazione, out ruoliSuperiori); } //log.EndLogEntry(); } catch (Exception ex) { string errorMessage = string.Format("Errore nella protocollazione del documento: {0}", ex.Message); logger.Debug(errorMessage, ex); retValue = false; risultatoProtocollazione = ResultProtocollazione.APPLICATION_ERROR; } //log.EndLogEntry(); //Performance.PerformanceLogWriter.FlushPerformanceLogWriter(); logger.Debug("(SP) - fine metodo di protocollazione semplice"); logger.Info("END"); return(retValue); }
/// <summary> /// Save delle modifiche apportate al documento /// </summary> /// <param name="schedaDocumento"></param> /// <param name="ufficioReferenteEnabled"></param> /// <param name="ufficioReferenteSaved"></param> /// <returns></returns> public bool SalvaDocumento(DocsPaVO.documento.SchedaDocumento schedaDocumento, bool ufficioReferenteEnabled, out bool ufficioReferenteSaved) { bool retValue = false; ufficioReferenteSaved = false; try { retValue = this.DocumentManagerETDOCS.SalvaDocumento(schedaDocumento, ufficioReferenteEnabled, out ufficioReferenteSaved); if (retValue) { retValue = this.DocumentManagerOCS.SalvaDocumento(schedaDocumento, ufficioReferenteEnabled, out ufficioReferenteSaved); } } catch (Exception ex) { string errorMessage = string.Format("Errore nel salvataggio dei dati del documento: {0}", ex.Message); logger.Debug(errorMessage, ex); retValue = false; } return(retValue); }
/// <summary> /// Trasmissione di notifica di conversione in PDF terminata (con successo o meno) /// </summary> /// <param name="infoUtente"></param> /// <param name="documentoConvertito"></param> /// <param name="noteGenerali"> /// Note generali da inserire nella trasmissione /// </param> /// <param name="noteIndividuali"></param> private static void ExecuteTrasmissione(DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.documento.SchedaDocumento documentoConvertito, string noteGenerali) { try { if (documentoConvertito == null) { throw new ApplicationException("Scheda Documento non disponibile per la trasmissione"); } DocsPaVO.utente.Utente utente = BusinessLogic.Utenti.UserManager.getUtente(infoUtente.idPeople); //Effettuo una trasmissione all'utente per comunicare l'esito della conversione pdf DocsPaVO.trasmissione.Trasmissione trasmissione = new DocsPaVO.trasmissione.Trasmissione(); trasmissione.utente = utente; trasmissione.tipoOggetto = DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO; trasmissione.noteGenerali = noteGenerali; string commandText = "(SELECT SYSTEM_ID FROM DPA_CORR_GLOBALI WHERE ID_GRUPPO = " + infoUtente.idGruppo + ")"; trasmissione.ruolo = BusinessLogic.Utenti.UserManager.getRuolo(commandText); trasmissione.infoDocumento = BusinessLogic.Documenti.DocManager.getInfoDocumento(documentoConvertito); DocsPaVO.trasmissione.RagioneTrasmissione ragione = BusinessLogic.Trasmissioni.RagioniManager.getRagioneNotifica(trasmissione.ruolo.idAmministrazione); DocsPaVO.utente.Corrispondente corr = null; string tipoNotify = ""; if (!string.IsNullOrEmpty(System.Configuration.ConfigurationManager.AppSettings["PDF_CONVERT_SERVER_NOTIFY"].ToString())) { tipoNotify = System.Configuration.ConfigurationManager.AppSettings["PDF_CONVERT_SERVER_NOTIFY"].ToString(); } if (tipoNotify != "" || tipoNotify != "0") { if (tipoNotify == "RS") { corr = (DocsPaVO.utente.Corrispondente)BusinessLogic.Utenti.UserManager.getRuolo(commandText); trasmissione = BusinessLogic.Trasmissioni.TrasmManager.addTrasmissioneSingola(trasmissione, corr, ragione, string.Empty, "S"); } if (tipoNotify == "RT") { corr = (DocsPaVO.utente.Corrispondente)BusinessLogic.Utenti.UserManager.getRuolo(commandText); trasmissione = BusinessLogic.Trasmissioni.TrasmManager.addTrasmissioneSingola(trasmissione, corr, ragione, string.Empty, "T"); } if (tipoNotify == "US") { //corr = (DocsPaVO.utente.Corrispondente) utente; corr = BusinessLogic.Utenti.UserManager.getCorrispondenteByIdPeople(utente.idPeople, DocsPaVO.addressbook.TipoUtente.INTERNO, infoUtente); trasmissione = BusinessLogic.Trasmissioni.TrasmManager.addTrasmissioneSingola(trasmissione, corr, ragione, string.Empty, "S"); } trasmissione = BusinessLogic.Trasmissioni.ExecTrasmManager.saveExecuteTrasmMethod(infoUtente.urlWA, trasmissione); if (trasmissione == null) { throw new ApplicationException(); } } } catch (Exception ex) { string errorMessage = string.Format("Si è verificato un errore nell'invio della trasmissione di notifica all'utente '{0}' di conversione in PDF del documento. NoteGenerali di trasmissione: '{1}', Note individuali di trasmissione: '{2}'", infoUtente.userId, noteGenerali, string.Empty); logger.Debug(errorMessage, ex); } }
public XmlDocumento(InfoConservazione infoCons, DocsPaVO.documento.FileDocumento fileDoc, DocsPaVO.documento.SchedaDocumento schDoc, DocsPaVO.documento.FileRequest objFileRequest) { if (this.documento == null) { documento = new Documento.Documento(); } DocsPaVO.utente.Ruolo ruolo = BusinessLogic.Utenti.UserManager.getRuolo(infoCons.IdRuoloInUo); DocsPaVO.utente.InfoUtente infoUtente = BusinessLogic.Utenti.UserManager.GetInfoUtente(UserManager.getUtente(infoCons.IdPeople), ruolo); DocsPaVO.utente.UnitaOrganizzativa unitaOrganizzativa = ruolo.uo; List <UnitaOrganizzativa> uoL = new List <UnitaOrganizzativa>(); UnitaOrganizzativa uoXML = Utils.convertiUO(unitaOrganizzativa); uoL.Add(uoXML); documento.SoggettoProduttore = new SoggettoProduttore { Amministrazione = Utils.getInfoAmministrazione(infoCons), GerarchiaUO = new GerarchiaUO { UnitaOrganizzativa = uoL.ToArray() }, Creatore = Utils.getCreatore(infoCons, ruolo) }; documento.IDistanza = infoCons.SystemID; documento.IDdocumento = schDoc.systemId; documento.Oggetto = schDoc.oggetto.descrizione; documento.Tipo = Utils.convertiTipoPoto(schDoc); // documento.DataCreazione = Utils.formattaData(Utils.convertiData(schDoc.dataCreazione)); documento.DataCreazione = schDoc.dataCreazione; if (schDoc.privato != null && schDoc.privato.Equals("1")) { documento.LivelloRiservatezza = "privato"; } else { documento.LivelloRiservatezza = string.Empty; } documento.File = getFileDetail(fileDoc, objFileRequest, infoUtente); documento.Registrazione = getRegistrazione(infoCons, schDoc, ruolo); documento.ContestoArchivistico = getContestoArchivistico(infoCons, schDoc, ruolo, infoUtente); if (schDoc.template != null) { Tipologia t = new Tipologia { NomeTipologia = schDoc.template.DESCRIZIONE, CampoTipologia = Utils.getCampiTipologia(schDoc.template) }; documento.Tipologia = t; } documento.Allegati = getAllegati(schDoc, infoUtente); }
/// <summary> /// Protocollazione di un documento predisposto /// </summary> /// <param name="schedaDocumento"></param> /// <param name="ruolo"></param> /// <param name="risultatoProtocollazione"></param> /// <returns></returns> public bool ProtocollaDocumentoPredisposto(DocsPaVO.documento.SchedaDocumento schedaDocumento, DocsPaVO.utente.Ruolo ruolo, out DocsPaVO.documento.ResultProtocollazione risultatoProtocollazione) { bool retValue = false; risultatoProtocollazione = ResultProtocollazione.APPLICATION_ERROR; try { // Stacco del numero di protocollo da parte di WSPia retValue = this._documentManagerWSPIA.CreateProtocollo(schedaDocumento, ruolo, out risultatoProtocollazione); // Se il risultato è positivo, si procede con una protocollazione di predisposto su ETDocs if (retValue && risultatoProtocollazione == ResultProtocollazione.OK) { retValue = this._documentManagerETDOCS.ProtocollaDocumentoPredisposto(schedaDocumento, ruolo, out risultatoProtocollazione); } // Se la protocollazione del predisposto è andata a buon fine, si procede con la put file su WsPia if (retValue && risultatoProtocollazione == ResultProtocollazione.OK) { if (schedaDocumento.documenti.Count > 0) { List <FileRequest> versions = new List <DocsPaVO.documento.FileRequest>( (DocsPaVO.documento.FileRequest[]) schedaDocumento.documenti.ToArray(typeof(DocsPaVO.documento.FileRequest))); // Ordinamento versioni versions.Sort( delegate(DocsPaVO.documento.FileRequest x, DocsPaVO.documento.FileRequest y) { int versionX, versionY; Int32.TryParse(x.version, out versionX); Int32.TryParse(y.version, out versionY); return(versionX.CompareTo(versionY)); } ); // Invio file ultima versione del doc principale TransferFileToWsPia(versions[0]); } if (schedaDocumento.allegati != null && schedaDocumento.allegati.Count > 0) { foreach (FileRequest attachment in schedaDocumento.allegati) { this.TransferFileToWsPia(attachment); } } } // Protocollazione classica //retValue = this.CreateProtocollo(schedaDocumento, ruolo, out risultatoProtocollazione); /* * if(retValue) * retValue = this.DocumentManagerETDOCS.ProtocollaDocumentoPredisposto(schedaDocumento, ruolo, out risultatoProtocollazione); */ } catch (Exception ex) { string errorMessage = string.Format("Errore nella protocollazione del documento: {0}", ex.Message); logger.Debug(errorMessage, ex); retValue = false; risultatoProtocollazione = ResultProtocollazione.APPLICATION_ERROR; } return(retValue); }
private ContestoArchivistico getContestoArchivistico(InfoConservazione infoCons, DocsPaVO.documento.SchedaDocumento schDoc, DocsPaVO.utente.Ruolo ruolo, DocsPaVO.utente.InfoUtente infoUtente) { ContestoArchivistico retval = new ContestoArchivistico(); List <Fascicolazione> fasList = new List <Fascicolazione>(); List <Classificazione> titList = new List <Classificazione>(); object[] fasAList = BusinessLogic.Fascicoli.FascicoloManager.getFascicoliDaDocNoSecurity(infoUtente, schDoc.systemId).ToArray(); foreach (object fo in fasAList) { DocsPaVO.fascicolazione.Fascicolo fas = fo as DocsPaVO.fascicolazione.Fascicolo; if (fas != null) { if (fas.tipo == "P") { Fascicolazione fascicolazione = new Fascicolazione(); fascicolazione.DescrizioneFascicolo = fas.descrizione; fascicolazione.CodiceFascicolo = fas.codice; fascicolazione.CodiceSottofascicolo = null; fascicolazione.DescrizioneSottofascicolo = null; fasList.Add(fascicolazione); if (fas.idTitolario != null) { OrgNodoTitolario nodo = BusinessLogic.Amministrazione.TitolarioManager.getNodoTitolario(fas.idTitolario); fascicolazione.TitolarioDiRierimento = nodo.Descrizione; } foreach (DocsPaVO.fascicolazione.Folder f in BusinessLogic.Fascicoli.FolderManager.GetFoldersDocument(schDoc.systemId, fas.systemID)) { Fascicolazione fasFolder = new Fascicolazione(); fasFolder.CodiceFascicolo = fas.descrizione; fasFolder.DescrizioneFascicolo = fas.codice; fasFolder.CodiceSottofascicolo = f.systemID; fasFolder.DescrizioneSottofascicolo = f.descrizione; fasFolder.TitolarioDiRierimento = fascicolazione.TitolarioDiRierimento; fasList.Add(fasFolder); } } else { OrgNodoTitolario nodo = BusinessLogic.Amministrazione.TitolarioManager.getNodoTitolario(fas.idTitolario); Classificazione cl = new Classificazione(); cl.TitolarioDiRiferimento = nodo.Descrizione; cl.CodiceClassificazione = nodo.Codice; titList.Add(cl); } } } List <DocumentoCollegato> lstDocColl = new List <DocumentoCollegato>(); if (schDoc.rispostaDocumento != null) { if ((schDoc.rispostaDocumento.docNumber != null) && (schDoc.rispostaDocumento.idProfile != null)) { SchedaDocumento sc = BusinessLogic.Documenti.DocManager.getDettaglio(infoUtente, schDoc.rispostaDocumento.idProfile, schDoc.rispostaDocumento.docNumber); DocumentoCollegato docColl = new DocumentoCollegato { IDdocumento = schDoc.rispostaDocumento.idProfile, DataCreazione = Utils.formattaData(Utils.convertiData(sc.dataCreazione)), Oggetto = sc.oggetto.descrizione, }; if (sc.protocollo != null) { docColl.DataProtocollo = Utils.formattaData(Utils.convertiData(sc.protocollo.dataProtocollazione)); docColl.NumeroProtocollo = sc.protocollo.numero; docColl.SegnaturaProtocollo = sc.protocollo.segnatura; } lstDocColl.Add(docColl); } } retval.Fascicolazione = fasList.ToArray(); retval.Classificazione = titList.ToArray(); retval.DocumentoCollegato = lstDocColl.ToArray(); return(retval); }
/// <summary> /// Elimina il documento della coda di conversione pdf lato server /// </summary> /// <returns></returns> public static void DequeueServerPdfConversion(string nameDocConvertito, string nameFileXml, byte[] docConvertito, byte[] xml, ref DocsPaVO.utente.InfoUtente infoUser, ref string noteLog, ref DocsPaVO.documento.SchedaDocumento sDoc) { logger.Debug( string.Format("INIZIO: EnqueueServerPdfConversion, nameDocConvertito: '{0}', nameFileXml: '{1}', docConvertiro: '{2}', xml: '{3}'", nameDocConvertito, nameFileXml, (docConvertito != null ? docConvertito.Length.ToString() : "NULL"), (xml != null ? xml.Length.ToString() : "NULL"))); DocsPaVO.utente.InfoUtente infoUtente = null; DocsPaVO.documento.SchedaDocumento schedaDocPrincipale = null; //string noteGeneraliTrasmissione = string.Empty; using (DocsPaDB.TransactionContext transactionContext = new DocsPaDB.TransactionContext()) { try { logger.Debug("INIZIO - Lettura file xml di metadati"); // 1. Lettura file xml di metadati MemoryStream ms = new MemoryStream(xml); XmlDocument xDoc = new XmlDocument(); xDoc.Load(ms); XmlNode node = xDoc.DocumentElement; logger.Debug("Creazione infoUtente"); //Creazione infoUtente infoUtente = new DocsPaVO.utente.InfoUtente(); infoUtente.dst = node.SelectSingleNode("DST").InnerText.ToString(); infoUtente.idAmministrazione = node.SelectSingleNode("ID_AMM").InnerText.ToString(); infoUtente.idCorrGlobali = node.SelectSingleNode("ID_CORR_GLOBALI").InnerText.ToString(); infoUtente.idGruppo = node.SelectSingleNode("ID_GRUPPO").InnerText.ToString(); infoUtente.idPeople = node.SelectSingleNode("ID_PEOPLE").InnerText.ToString(); infoUtente.sede = node.SelectSingleNode("SEDE").InnerText.ToString(); infoUtente.urlWA = node.SelectSingleNode("URLWA").InnerText.ToString(); infoUtente.userId = node.SelectSingleNode("USERID").InnerText.ToString(); if (node.SelectSingleNode("ID_PEOPLE_DELEGATO") != null && !string.IsNullOrEmpty(node.SelectSingleNode("ID_PEOPLE_DELEGATO").ToString())) { infoUtente.delegato = new DocsPaVO.utente.InfoUtente() { idPeople = node.SelectSingleNode("ID_PEOPLE_DELEGATO").InnerText.ToString() }; } infoUser = infoUtente; logger.Debug("Creazione fileRequest"); //Creazione FileRequest DocsPaVO.documento.FileRequest fileRequest = new DocsPaVO.documento.FileRequest(); fileRequest.autore = node.SelectSingleNode("AUTORE").InnerText.ToString(); fileRequest.dataInserimento = node.SelectSingleNode("DATA_INSERIMENTO").InnerText.ToString(); fileRequest.descrizione = node.SelectSingleNode("DESCRIZIONE").InnerText.ToString(); fileRequest.docNumber = node.SelectSingleNode("DOCNUMBER").InnerText.ToString(); string OriginalfileName = null; try { //potrebbe non esistere OriginalfileName = node.SelectSingleNode("ORIGINAL_FILE_NAME").InnerText.ToString(); } catch { logger.Debug("ORIGINAL_FILE_NAME non presente"); } //Faillace : provo nel caso sia codificato in base 64 (modifica del 4-6-2014) try { if (OriginalfileName != null) { byte[] ofnBytes = Convert.FromBase64String(OriginalfileName); if (ofnBytes != null) { OriginalfileName = System.Text.UTF8Encoding.UTF8.GetString(ofnBytes); } } } catch { // se entro nella catch il filename non è codificato base64, non defo fare nulla perchè il nome file sarà // in chiaro, ma avrà le accentate errate in quanto convertito ascii // se prensente un punto interrogativo (non ammesso nel filename ma introdotto dal convertitore) lo converto in underscore. if (OriginalfileName != null) { OriginalfileName = OriginalfileName.Replace('?', '_'); } } logger.Debug("Informazioni documento"); //Recupero informazioni del documento string idProfile = node.SelectSingleNode("ID_PROFILE").InnerText.ToString(); string docNumber = node.SelectSingleNode("DOCNUMBER").InnerText.ToString(); logger.Debug("FINE - Lettura file xml di metadati"); // 2. Verifica se il documento è in stato di conversione PDF if (BusinessLogic.Documenti.DocManager.isDocInConversionePdf(idProfile)) { // 3. Controllo che il documento in stato di conversione sia in checkout dallo stesso utente logger.Debug("INIZIO - Reperimento dello stato di CheckOut del documento '{0}'"); DocsPaVO.CheckInOut.CheckOutStatus statusCheckOut = null; try { statusCheckOut = BusinessLogic.CheckInOut.CheckInOutServices.GetCheckOutStatus(idProfile, docNumber, infoUtente); } catch (Exception ex) { // 3a. Si è verificato un errore nel reperimento delle informazioni di stato del documento nel sistema documentale // In tali frangenti, non è possibile effettuare l'undo checkout nel sistema documentale e la conseguente rimozione del lock di conversione. // Pertanto sarà notificata una trasmissione di fallimento all'utente segnalando, tra le note individuali, che c'è stato un problema // nel sistema documentale e che il documento dovrà essere sbloccato a mano. //noteGeneraliTrasmissione = string.Format("Problemi durante la conversione in PDF per il documento '{0}'. " + // "Sarà necessario sbloccare manualmente il documento e ripetere l'operazione.", idProfile); noteLog = string.Format("Problemi durante la conversione in PDF per il documento '{0}'. " + "Sarà necessario sbloccare manualmente il documento e ripetere l'operazione.", idProfile); //throw new ApplicationException(noteGeneraliTrasmissione, ex); throw new ApplicationException(noteLog, ex); } logger.Debug("FINE - Reperimento dello stato di CheckOut del documento '{0}'"); if (statusCheckOut != null && statusCheckOut.DocumentNumber == fileRequest.docNumber && statusCheckOut.UserName.ToUpper() == infoUtente.userId.ToUpper()) { logger.Debug("DocNumber CheckOut : " + statusCheckOut.DocumentNumber); logger.Debug("DocNumber FileRequest : " + fileRequest.docNumber); logger.Debug("IdRole CheckOut : " + statusCheckOut.IDRole); logger.Debug("IdCorrGlobali infoUtente : " + infoUtente.idCorrGlobali); logger.Debug("UserName CheckOut : " + statusCheckOut.UserName); logger.Debug("UserName infoUtente : " + infoUtente.userId); statusCheckOut.DocumentLocation = nameDocConvertito; bool undoCheckOut = false; // Se il parametro "docConvertito" è null allora ci sono stati problemi nella conversione if (docConvertito != null) { // 4. CheckIn del documento if (!CheckIn(infoUtente, statusCheckOut, docConvertito, "Documento convertito in pdf lato server")) { // 4a. Errore in CheckIn, viene effettuato l'UndoCheckOut UndoCheckOut(infoUtente, statusCheckOut); undoCheckOut = true; } else { if (!String.IsNullOrEmpty(OriginalfileName)) { //documento convertito, gli rimetto il nome originale OriginalfileName = System.IO.Path.GetFileNameWithoutExtension(OriginalfileName) + ".pdf"; DocsPaVO.documento.FileRequest fr = (DocsPaVO.documento.FileRequest)BusinessLogic.Documenti.DocManager.getDettaglioNoSecurity(infoUtente, docNumber).documenti[0]; BusinessLogic.Documenti.FileManager.setOriginalFileName(infoUtente, fr, OriginalfileName, true); } } } else { // 4a. File non convertito, UndoCheckOut del documento UndoCheckOut(infoUtente, statusCheckOut); undoCheckOut = true; } logger.Debug("Recupero scheda documento"); DocsPaVO.documento.SchedaDocumento schDoc = null; try { // 5. Reperimento scheda del documento convertito schDoc = BusinessLogic.Documenti.DocManager.getDettaglioNoSecurity(infoUtente, docNumber); } catch (Exception ex) { // Errore nel reperimento del dettaglio del documento logger.Debug(ex); // NB. Nonostante l'errore, il documento è stato correttamente convertito (o meno) // e il checkin (o undocheckout) è stato effettauto correttamente. // Pertanto il reperimento della scheda è ininfluente e come nota generale // viene impostato l'id del documento, senza distinguere se principale o allegato //noteGeneraliTrasmissione = string.Format("Il documento '{0}' è stato convertito in PDF.", docNumber); noteLog = string.Format("Il documento '{0}' è stato convertito in PDF.", docNumber); } if (schDoc != null) { // Verifico se il doc convertito è un allegato bool isAllegato = (schDoc.documentoPrincipale != null); if (isAllegato) { try { // 5a. Reperimento scheda doc principale per l'allegato schedaDocPrincipale = BusinessLogic.Documenti.DocManager.getDettaglioNoSecurity( infoUtente, schDoc.documentoPrincipale.docNumber); } catch (Exception ex) { // Errore nel reperimento del dettaglio del documento allegato logger.Debug(ex); } if (undoCheckOut) { //noteGeneraliTrasmissione = string.Format("Problemi durante la conversione in PDF per l'allegato '{0}'. Ripetere l'operazione.", schDoc.docNumber); noteLog = string.Format("Problemi durante la conversione in PDF per l'allegato '{0}'. Ripetere l'operazione.", schDoc.docNumber); } else { // Impostazione note generali di trasmissione //noteGeneraliTrasmissione = string.Format("Allegato '{0}' convertito in PDF.", schDoc.docNumber); noteLog = string.Format("Allegato '{0}' convertito in PDF.", schDoc.docNumber); } } else { schedaDocPrincipale = schDoc; // Impostazione note generali di trasmissione string docName = string.Empty; if (schedaDocPrincipale.protocollo != null) { docName = schedaDocPrincipale.protocollo.segnatura; } else { docName = schedaDocPrincipale.docNumber; } if (undoCheckOut) { //noteGeneraliTrasmissione = string.Format("Problemi durante la conversione in PDF per il documento '{0}'. Ripetere l'operazione.", docName); noteLog = string.Format("Problemi durante la conversione in PDF per il documento '{0}'. Ripetere l'operazione.", docName); } else { //noteGeneraliTrasmissione = string.Format("Il documento '{0}' è stato convertito in PDF.", docName); noteLog = string.Format("Il documento '{0}' è stato convertito in PDF.", docName); } } } } else { logger.Debug(string.Format("Il documento '{0}' non è più bloccato nel sistema documentale per la conversione PDF", idProfile)); } } else { logger.Debug(string.Format("Il documento '{0}' non è più in coda di conversione PDF", idProfile)); } } catch (Exception ex) { logger.Debug("Errore in BusinessLogic.Documenti.LifeCyclePdfConverter.cs - metodo: DequeueServerPdfConversion", ex); } finally { sDoc = schedaDocPrincipale; //ExecuteTrasmissione(infoUtente, schedaDocPrincipale, noteGeneraliTrasmissione); // 6. Completamento della transazione in ogni caso transactionContext.Complete(); logger.Debug(string.Format("FINE: EnqueueServerPdfConversion, nameDocConvertito: '{0}', nameFileXml: '{1}', docConvertiro: '{2}', xml: '{3}'", nameDocConvertito, nameFileXml, (docConvertito != null ? docConvertito.Length.ToString() : "NULL"), (xml != null ? xml.Length.ToString() : "NULL"))); logger.Debug("Tramissione di notifica conversione"); } } }
public string InviaRelata(byte[] fileReleata, String Stato, string token) { AlboToken at = new AlboToken(); AlboTokenVO tvo = at.DecryptToken(token); String docNumber = tvo.DocNumber; String nomeFile = "Relata.pdf"; string IdAmministrazione = BusinessLogic.Utenti.UserManager.getIdAmmUtente(tvo.userID); DocsPaVO.utente.Utente utente = BusinessLogic.Utenti.UserManager.getUtente(tvo.userID, IdAmministrazione); utente.dst = BusinessLogic.Utenti.UserManager.getSuperUserAuthenticationToken(); if (utente == null) { throw new ApplicationException(string.Format("Utente {0} non trovato", tvo.userID)); } DocsPaVO.utente.Ruolo[] ruoli = (DocsPaVO.utente.Ruolo[])BusinessLogic.Utenti.UserManager.getRuoliUtente(utente.idPeople).ToArray(typeof(DocsPaVO.utente.Ruolo)); if (ruoli != null && ruoli.Length > 0) { throw new ApplicationException("L'utente non non risulta associato ad alcun ruolo"); } DocsPaVO.utente.InfoUtente infoUtente = new DocsPaVO.utente.InfoUtente(utente, ruoli[0]); DocsPaVO.documento.Allegato all = new DocsPaVO.documento.Allegato(); all.descrizione = "Relata di Pubblicazione"; all.docNumber = docNumber; all.fileName = nomeFile; all.version = "0"; all.numeroPagine = 1; DocsPaVO.documento.Allegato allIns = null; String err = String.Empty; try { allIns = BusinessLogic.Documenti.AllegatiManager.aggiungiAllegato(infoUtente, all); } catch (Exception ex) { logger.DebugFormat("Problemi nell'inserire l'allegato per la relata di pubblicazione {0} \r\n {1}", ex.Message, ex.StackTrace); } try { DocsPaVO.documento.SchedaDocumento sd = BusinessLogic.Documenti.DocManager.getDettaglioNoSecurity(infoUtente, docNumber); DocsPaVO.documento.FileDocumento fdAll = new DocsPaVO.documento.FileDocumento(); fdAll.content = fileReleata; fdAll.length = fileReleata.Length; fdAll.name = nomeFile; fdAll.bypassFileContentValidation = true; DocsPaVO.documento.FileRequest fRAll = (DocsPaVO.documento.FileRequest)sd.documenti[0]; fRAll = (DocsPaVO.documento.FileRequest)all; if (fdAll.content.Length > 0) { logger.Debug("controllo se esiste l'ext"); if (!BusinessLogic.Documenti.DocManager.esistiExt(nomeFile)) { BusinessLogic.Documenti.DocManager.insertExtNonGenerico(nomeFile, "application/octet-stream"); } if (!BusinessLogic.Documenti.FileManager.putFile(ref fRAll, fdAll, infoUtente, out err)) { logger.Debug("errore durante la putfile"); } } } catch (Exception ex) { if (err == "") { err = string.Format("Errore nel reperimento del file allegato: {0}. {1}", nomeFile, ex.Message); } BusinessLogic.Documenti.AllegatiManager.rimuoviAllegato(all, infoUtente); logger.Debug(err); } //Mettere il cambio di stato. return("OK"); }
/// <summary> /// Creazione di un nuovo documento per la stampa registro. /// </summary> /// <param name="schedaDocumento"></param> /// <param name="ruolo"></param> /// <returns></returns> public bool CreateDocumentoStampaRegistro(DocsPaVO.documento.SchedaDocumento schedaDocumento, DocsPaVO.utente.Ruolo ruolo) { DocsPaVO.utente.Ruolo[] ruoliSuperiori; return(this.CreateDocumentoStampaRegistro(schedaDocumento, ruolo, out ruoliSuperiori)); }
/// <summary> /// /// </summary> /// <param name="idAmministrazione"></param> /// <param name="schedaDocumento"></param> /// <param name="ruolo"></param> /// <param name="sede"></param> /// <param name="risultatoProtocollazione"></param> /// <returns></returns> public bool CreateProtocollo(DocsPaVO.documento.SchedaDocumento schedaDocumento, DocsPaVO.utente.Ruolo ruolo, out DocsPaVO.documento.ResultProtocollazione risultatoProtocollazione) { DocsPaVO.utente.Ruolo[] ruoliSuperiori; return(this.CreateProtocollo(schedaDocumento, ruolo, out risultatoProtocollazione, out ruoliSuperiori)); }