Beispiel #1
0
        /// <summary>
        /// Metodo per la costruzione dell'oggetto InfoDocumentDelivered contenente informazioni
        /// su ciò che è stato effettivamente recapitato a destinazione.
        /// </summary>
        /// <param name="schedaDocumento"></param>
        /// <returns></returns>
        private static InfoDocumentDelivered BuildInfoDocumentDelivered(SchedaDocumento schedaDocumento)
        {
            InfoDocumentDelivered infoDocDelivered = new InfoDocumentDelivered();

            if (schedaDocumento != null && !string.IsNullOrEmpty(schedaDocumento.docNumber))
            {
                try
                {
                    //Aggiungo le informazioni per il documento principale
                    FileRequest fileReq = (Documento)schedaDocumento.documenti[0];
                    DocsPaDB.Query_DocsPAWS.Documenti doc = new DocsPaDB.Query_DocsPAWS.Documenti();
                    string impronta = string.Empty;
                    if (Int32.Parse(fileReq.fileSize) > 0)
                    {
                        doc.GetImpronta(out impronta, fileReq.versionId, fileReq.docNumber);
                    }
                    infoDocDelivered.MainDocument = new DocumentInfo
                    {
                        Name        = schedaDocumento.oggetto.descrizione,
                        FileName    = doc.GetNomeOriginale(fileReq.versionId, fileReq.docNumber),
                        Fingerprint = impronta
                    };

                    //Aggiungo le informazioni per gli allegati
                    infoDocDelivered.Attachments = new List <DocumentInfo>();
                    schedaDocumento.allegati     = doc.GetAllegati(schedaDocumento.docNumber, "user");
                    if (schedaDocumento.allegati != null && schedaDocumento.allegati.Count > 0)
                    {
                        DocumentInfo infoAttach;
                        foreach (Allegato allegato in schedaDocumento.allegati)
                        {
                            impronta = string.Empty;
                            if (Int32.Parse(allegato.fileSize) > 0)
                            {
                                doc.GetImpronta(out impronta, allegato.versionId, allegato.docNumber);
                            }

                            infoAttach = new DocumentInfo
                            {
                                Name         = allegato.descrizione,
                                VersionLabel = allegato.versionLabel,
                                FileName     = doc.GetNomeOriginale(allegato.versionId, allegato.docNumber),
                                Fingerprint  = impronta
                            };

                            infoDocDelivered.Attachments.Add(infoAttach);
                        }
                    }
                }
                catch (Exception e)
                {
                    logger.Error("BusinessLogic.interoperabilita.Semplificata.SimplifiedInteroperabilityRequestManager.BuildInfoDocumentDelivered. Errore durante la costruzione dell'oggetto contenente l'infomazione della spedizione : " + e.Message);
                }
            }
            return(infoDocDelivered);
        }
Beispiel #2
0
        /// <summary>
        /// Reperimento degli allegati di un documento
        /// </summary>
        /// <param name="infoDoc"></param>
        /// <param name="debug"></param>
        /// <returns></returns>
        public static System.Collections.ArrayList getAllegati(string docNumber, string filterAllegatiPec, string simplifiedInteroperabilityId = "")
        {
            DocsPaDB.Query_DocsPAWS.Documenti doc = new DocsPaDB.Query_DocsPAWS.Documenti();

            return(doc.GetAllegati(docNumber, filterAllegatiPec, simplifiedInteroperabilityId));
        }
Beispiel #3
0
        public static DocsPaVO.documento.SchedaDocumento InoltraDoc(DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.utente.Ruolo ruolo, DocsPaVO.documento.SchedaDocumento schedaOLD)
        {
            string err = "";

            DocsPaVO.documento.SchedaDocumento schedaNEW = null;
            bool   daAggiornareUffRef = false;
            string filepath           = "";

            DocsPaVO.documento.FileDocumento fd = null;

            //se arriva sch con solo system_id e docnumber la ricerco
            if (schedaOLD != null && schedaOLD.protocollo == null)
            {
                schedaOLD = BusinessLogic.Documenti.DocManager.getDettaglio(infoUtente, schedaOLD.systemId, schedaOLD.docNumber);
            }
            schedaNEW = new DocsPaVO.documento.SchedaDocumento();

            schedaNEW.systemId  = null;
            schedaNEW.docNumber = null;
            schedaNEW.oggetto   = schedaOLD.oggetto;
            schedaNEW.idPeople  = infoUtente.idPeople;
            schedaNEW.userId    = infoUtente.userId;
            schedaNEW.registro  = schedaOLD.registro;
            //schedaNEW.tipoProto = "P";
            schedaNEW.typeId              = "LETTERA";
            schedaNEW.privato             = schedaOLD.privato;
            schedaNEW.mezzoSpedizione     = schedaOLD.mezzoSpedizione;
            schedaNEW.descMezzoSpedizione = schedaOLD.descMezzoSpedizione;
            schedaNEW.tipologiaAtto       = schedaOLD.tipologiaAtto;
            schedaNEW.template            = schedaOLD.template;
            //schedaNEW.predisponiProtocollazione = true;

            //creo un nuovo documento grigio
            logger.Debug("Creazione doc...");
            schedaNEW = BusinessLogic.Documenti.DocSave.addDocGrigia(schedaNEW, infoUtente, ruolo);

            //Dopo aver creato il documento grigio lo predispongo alla protocollazione
            logger.Debug("Predisponi doc...");
            schedaNEW.tipoProto = "P";
            schedaNEW.typeId    = schedaOLD.typeId;
            schedaNEW.predisponiProtocollazione = true;

            schedaNEW.protocollo = new DocsPaVO.documento.ProtocolloUscita();

            DocsPaVO.utente.Corrispondente corr = ruolo.uo;
            ((DocsPaVO.documento.ProtocolloUscita)schedaNEW.protocollo).mittente = corr;
            //((DocsPaVO.documento.ProtocolloUscita)schedaNEW.protocollo).mittente = ((DocsPaVO.documento.ProtocolloUscita)schedaOLD.protocollo).mittente;
            //((DocsPaVO.documento.ProtocolloUscita)schedaNEW.protocollo).destinatari = ((DocsPaVO.documento.ProtocolloUscita)schedaOLD.protocollo).destinatari;
            //((DocsPaVO.documento.ProtocolloUscita)schedaNEW.protocollo).destinatariConoscenza = ((DocsPaVO.documento.ProtocolloUscita)schedaOLD.protocollo).destinatariConoscenza;


            schedaNEW = BusinessLogic.Documenti.DocSave.save(infoUtente, schedaNEW, false, out daAggiornareUffRef, ruolo);
            logger.Debug("Creato documento grigio e predisposto alla protocollazione");

            //Copia del documento principale e degli allegati del vecchio documento
            //nel nuovo documento come allegati
            #region ricerca e copia degli allegati
            logger.Debug("Inserimento degli allegati");
            for (int i = 0; schedaOLD.allegati != null && i < schedaOLD.allegati.Count; i++)
            {
                //estrazione dati dell'allegato
                DocsPaVO.documento.Allegato documentoAllegato = (DocsPaVO.documento.Allegato)schedaOLD.allegati[i];
                filepath = documentoAllegato.docServerLoc + documentoAllegato.path;
                string nomeAllegato = "Inoltro " + documentoAllegato.fileName;
                string numPagine    = documentoAllegato.numeroPagine.ToString();
                string titoloDoc    = documentoAllegato.descrizione;
                logger.Debug("Inserimento allegato " + nomeAllegato);
                DocsPaVO.documento.Allegato all = new DocsPaVO.documento.Allegato();
                all.descrizione = "allegato " + i;
                logger.Debug("docnumber=" + schedaNEW.docNumber);
                all.docNumber = schedaNEW.docNumber;
                all.fileName  = getFileName(nomeAllegato);
                all.version   = "0";
                //numero pagine
                if (numPagine != null && !numPagine.Trim().Equals(""))
                {
                    all.numeroPagine = Int32.Parse(numPagine);
                }
                //descrizione allegato
                if (titoloDoc != null && !titoloDoc.Trim().Equals(""))
                {
                    all.descrizione = "Inoltro " + titoloDoc;
                }
                BusinessLogic.Documenti.AllegatiManager.aggiungiAllegato(infoUtente, all);
                logger.Debug("Allegato id=" + all.versionId);
                logger.Debug("Allegato version label=" + all.versionLabel);
                logger.Debug("Inserimento nel filesystem");
                DocsPaVO.documento.FileDocumento fdAllNew = new DocsPaVO.documento.FileDocumento();
                DocsPaVO.documento.FileDocumento fdAll    = null;
                if (Int32.Parse(documentoAllegato.fileSize) > 0)
                {
                    try
                    {
                        fdAll = BusinessLogic.Documenti.FileManager.getFile((DocsPaVO.documento.FileRequest)schedaOLD.allegati[i], infoUtente);
                        if (fdAll == null)
                        {
                            throw new Exception("Errore nel reperimento dell'allegato numero" + i.ToString());
                        }
                        fdAllNew.content     = fdAll.content;
                        fdAllNew.length      = fdAll.length;
                        fdAllNew.name        = fdAll.name;
                        fdAllNew.fullName    = fdAll.fullName;
                        fdAllNew.contentType = fdAll.contentType;
                        DocsPaVO.documento.FileRequest fr = (DocsPaVO.documento.FileRequest)all;
                        if (!BusinessLogic.Documenti.FileManager.putFile(ref fr, fdAllNew, infoUtente, out err))
                        {
                            throw new Exception(err);
                        }
                        logger.Debug("Allegato " + i + " inserito");
                    }
                    catch (Exception ex)
                    {
                        err = "Errore nel reperimento dell'allegato numero " + i.ToString() + " : " + ex.Message;
                        if (schedaNEW != null && schedaNEW.systemId != null && schedaNEW.systemId != "")
                        {
                            //se il putFile va in errore devo rimuovere il profile (predisposto appena inserito)
                            BusinessLogic.Documenti.DocManager.ExecRimuoviSchedaMethod(infoUtente, schedaNEW);

                            logger.Debug("Eseguita rimozione profilo");
                        }
                        logger.Debug(err);//se non si riesce a prener eil file per problemi vari continuo comunque per arrivare a eseguiTrasmissione
                        throw ex;
                    }
                }
            }
            #endregion
            #region copia documento principale in allegato
            //DocsPaVO.documento.FileDocumento fdNew = null;
            if (schedaOLD.documenti != null && schedaOLD.documenti[0] != null &&
                Int32.Parse(((DocsPaVO.documento.FileRequest)schedaOLD.documenti[0]).fileSize) > 0)
            {
                try
                {
                    fd = BusinessLogic.Documenti.FileManager.getFile((DocsPaVO.documento.FileRequest)schedaOLD.documenti[0], infoUtente);
                    if (fd == null)
                    {
                        throw new Exception("Errore nel reperimento del file principale.");
                    }
                    //copio in un nuovo filerequest perchè putfile lo vuole senza

                    DocsPaVO.documento.Allegato allDocPrinc = new DocsPaVO.documento.Allegato();
                    allDocPrinc.descrizione = "Inoltro documento principale id: " + schedaOLD.docNumber;
                    allDocPrinc.docNumber   = schedaNEW.docNumber;
                    allDocPrinc.fileName    = getFileName(fd.name);
                    allDocPrinc.version     = "0";
                    BusinessLogic.Documenti.AllegatiManager.aggiungiAllegato(infoUtente, allDocPrinc);

                    DocsPaVO.documento.FileDocumento fdAllNew = new DocsPaVO.documento.FileDocumento();
                    DocsPaVO.documento.FileDocumento fdAll    = null;
                    fdAll = BusinessLogic.Documenti.FileManager.getFile((DocsPaVO.documento.FileRequest)schedaOLD.documenti[0], infoUtente);
                    if (fdAll == null)
                    {
                        throw new Exception("Errore nel reperimento del file principale come allegato");
                    }
                    fdAllNew.content     = fdAll.content;
                    fdAllNew.length      = fdAll.length;
                    fdAllNew.name        = fdAll.name;
                    fdAllNew.fullName    = fdAll.fullName;
                    fdAllNew.contentType = fdAll.contentType;
                    DocsPaVO.documento.FileRequest fr = (DocsPaVO.documento.FileRequest)allDocPrinc;
                    if (!BusinessLogic.Documenti.FileManager.putFile(ref fr, fdAllNew, infoUtente, out err))
                    {
                        throw new Exception(err);
                    }
                    logger.Debug("Doc principale inserito come allegato");

                    DocsPaDB.Query_DocsPAWS.Documenti doc = new DocsPaDB.Query_DocsPAWS.Documenti();
                    schedaNEW.allegati = doc.GetAllegati(schedaNEW.docNumber, string.Empty);
                }
                catch (Exception ex)
                {
                    err = "Errore nel reperimento del file principale : " + ex.Message;
                    if (schedaNEW != null && schedaNEW.systemId != null && schedaNEW.systemId != "")
                    {
                        //se il putFile va in errore devo rimuovere il profile (predisposto appena inserito)
                        BusinessLogic.Documenti.DocManager.ExecRimuoviSchedaMethod(infoUtente, schedaNEW);
                        logger.Debug("Eseguita rimozione profilo");
                    }
                    logger.Debug(err);
                    throw ex;
                }
            }
            #endregion



            err = err + " " + schedaNEW.docNumber;
            if (schedaNEW != null && schedaNEW.docNumber != null)
            {
                err = "errore " + err + " documento  rimosso: " + schedaNEW.docNumber;
            }
            else
            {
                err = "errore " + err;
            }
            logger.Debug(err);
            schedaNEW.predisponiProtocollazione = true;
            return(schedaNEW);
        }