Example #1
0
        /// <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);
        }
Example #2
0
        /// <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);
        }
Example #3
0
        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);
        }
Example #4
0
        /// <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);
        }
Example #5
0
        //
        // 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);
            }
        }
Example #6
0
        /// <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);
        }
Example #7
0
        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());
        }
Example #8
0
        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();
            }
        }
Example #9
0
        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;
        }
Example #10
0
        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();
            }
        }
Example #11
0
        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());
        }
Example #12
0
        /// <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;
        }
Example #13
0
        /// <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);
            }
        }
Example #14
0
        /// <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);
        }
Example #15
0
        /// <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);
        }
Example #16
0
        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);
        }
Example #17
0
        /// <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);
        }
Example #18
0
        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);
            }
        }
Example #19
0
        /// <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);
        }
Example #20
0
        /// <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);
        }
Example #21
0
        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);
        }
Example #22
0
        /// <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);
        }
Example #23
0
        /// <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);
            }
        }
Example #24
0
        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);
        }
Example #25
0
        /// <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);
        }
Example #26
0
        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);
        }
Example #27
0
        /// <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");
                }
            }
        }
Example #28
0
        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");
        }
Example #29
0
 /// <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));
 }
Example #30
0
 /// <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));
 }