Ejemplo n.º 1
0
        private DocsPaVO.FriendApplication.SchedaDocumento getSchedaDocumentoLite(DocsPaVO.documento.SchedaDocumento schedaDocumento, DocsPaVO.FriendApplication.SchedaDocumento schedaDocumentoLite)
        {
            try
            {
                schedaDocumentoLite.systemId       = schedaDocumento.systemId;
                schedaDocumentoLite.docNumber      = schedaDocumento.docNumber;
                schedaDocumentoLite.codiceRegistro = schedaDocumento.registro.codRegistro;
                schedaDocumentoLite.segnatura      = schedaDocumento.protocollo.segnatura;
                schedaDocumentoLite.dataCreazione  = schedaDocumento.dataCreazione;

                //Protocollo in Uscita
                if (schedaDocumentoLite.tipoProto.ToUpper() == "P".ToUpper())
                {
                    DocsPaVO.documento.ProtocolloUscita protoPartenza = (DocsPaVO.documento.ProtocolloUscita)schedaDocumento.protocollo;
                    schedaDocumentoLite.dataProtocollo   = protoPartenza.dataProtocollazione;
                    schedaDocumentoLite.numeroProtocollo = protoPartenza.numero;
                }

                //Protocollo in Arrivo
                if (schedaDocumentoLite.tipoProto.ToUpper() == "A".ToUpper())
                {
                    DocsPaVO.documento.ProtocolloEntrata protoArrivo = (DocsPaVO.documento.ProtocolloEntrata)schedaDocumento.protocollo;
                    schedaDocumentoLite.dataProtocollo   = protoArrivo.dataProtocollazione;
                    schedaDocumentoLite.numeroProtocollo = protoArrivo.numero;
                }

                //Protocollo Interno
                if (schedaDocumentoLite.tipoProto.ToUpper() == "I".ToUpper())
                {
                    DocsPaVO.documento.ProtocolloInterno protoInterno = (DocsPaVO.documento.ProtocolloInterno)schedaDocumento.protocollo;
                    schedaDocumentoLite.dataProtocollo   = protoInterno.dataProtocollazione;
                    schedaDocumentoLite.numeroProtocollo = protoInterno.numero;
                }

                return(schedaDocumentoLite);
            }
            catch (Exception ex)
            {
                logger.Debug("Errore in DocsPaWSFriendApplication - metodo : getSchedaDocumentoLite", ex);
                throw ex;
            }
        }
Ejemplo n.º 2
0
        internal static DocsPaVO.documento.SchedaDocumento setProtoInterno(DocsPaVO.documento.SchedaDocumento schedaDocumento, DocsPaVO.documento.ProtocolloEmergenza protoEmergenza)
        {
            DocsPaVO.documento.ProtocolloInterno proto = new DocsPaVO.documento.ProtocolloInterno();
            //proto.daProtocollare = "1";
            //destinatari
            proto.destinatari = new ArrayList(protoEmergenza.destinatari.Count);
            for (int i = 0; i < protoEmergenza.destinatari.Count; i++)
            {
                DocsPaVO.utente.Corrispondente corr = new DocsPaVO.utente.Corrispondente();
                corr.descrizione = protoEmergenza.destinatari[i].ToString();

                proto.destinatari.Add(corr);
            }
            //destinatariCC
            proto.destinatariConoscenza = new ArrayList(protoEmergenza.destinatariCC.Count);
            for (int j = 0; j < protoEmergenza.destinatariCC.Count; j++)
            {
                DocsPaVO.utente.Corrispondente corr = new DocsPaVO.utente.Corrispondente();
                corr.descrizione = protoEmergenza.destinatariCC[j].ToString();
                proto.destinatariConoscenza.Add(corr);
            }
            schedaDocumento.protocollo = proto;
            return(schedaDocumento);
        }
Ejemplo n.º 3
0
        private DocsPaVO.documento.SchedaDocumento getSchedaDocumentoDocsPa(DocsPaVO.FriendApplication.SchedaDocumento schedaDocumentoLite, DocsPaVO.FriendApplication.FriendApplication objFriendApplication, DocsPaVO.utente.InfoUtente infoUtente)
        {
            try
            {
                //Creo e valorizzo una Scheda Documento
                DocsPaVO.documento.SchedaDocumento schedaDocumentoTrasformata = new DocsPaVO.documento.SchedaDocumento();
                schedaDocumentoTrasformata.appId         = "ACROBAT";
                schedaDocumentoTrasformata.idPeople      = objFriendApplication.idPeopleFactory;
                schedaDocumentoTrasformata.typeId        = "LETTERA";
                schedaDocumentoTrasformata.userId        = objFriendApplication.utente.userId;
                schedaDocumentoTrasformata.noteDocumento = new List <DocsPaVO.Note.InfoNota>();
                schedaDocumentoTrasformata.noteDocumento.Add(new DocsPaVO.Note.InfoNota(schedaDocumentoLite.note, objFriendApplication.utente.systemId, objFriendApplication.ruolo.systemId, null));
                DocsPaVO.documento.Oggetto oggetto = new DocsPaVO.documento.Oggetto();
                oggetto.descrizione = schedaDocumentoLite.oggetto;
                schedaDocumentoTrasformata.oggetto = oggetto;

                //Protocollo in Partenza
                if (schedaDocumentoLite.tipoProto.ToUpper() == "P".ToUpper())
                {
                    DocsPaVO.documento.ProtocolloUscita protoPartenza = new DocsPaVO.documento.ProtocolloUscita();

                    //Aggiungo il mittente
                    if (schedaDocumentoLite.mittente != null)
                    {
                        DocsPaVO.utente.Corrispondente mittente = ricercaCorr(schedaDocumentoLite.mittente, infoUtente);
                        if (mittente != null)
                        {
                            protoPartenza.mittente = mittente;
                        }
                    }

                    //Aggiungo i destinatari
                    protoPartenza.destinatari = new ArrayList();
                    foreach (DocsPaVO.FriendApplication.CorrLite corrLite in schedaDocumentoLite.destinatari)
                    {
                        protoPartenza.destinatari.Add(ricercaCorr(corrLite, infoUtente));
                    }

                    schedaDocumentoTrasformata.protocollo = protoPartenza;
                    schedaDocumentoTrasformata.tipoProto  = "P";
                }

                //Protocollo in Arrivo
                if (schedaDocumentoLite.tipoProto.ToUpper() == "A".ToUpper())
                {
                    DocsPaVO.documento.ProtocolloEntrata protoArrivo = new DocsPaVO.documento.ProtocolloEntrata();

                    //Aggiungo il mittente
                    DocsPaVO.utente.Corrispondente mittente = ricercaCorr(schedaDocumentoLite.mittente, infoUtente);
                    protoArrivo.mittente = mittente;

                    schedaDocumentoTrasformata.protocollo = protoArrivo;
                    schedaDocumentoTrasformata.tipoProto  = "A";
                }

                //Protocollo Interno
                if (schedaDocumentoLite.tipoProto.ToUpper() == "I".ToUpper())
                {
                    DocsPaVO.documento.ProtocolloInterno protoInterno = new DocsPaVO.documento.ProtocolloInterno();

                    //Aggiungo il mittente
                    DocsPaVO.utente.Corrispondente mittente = ricercaCorr(schedaDocumentoLite.mittente, infoUtente);
                    protoInterno.mittente = mittente;

                    //Aggiungo i destinatari
                    protoInterno.destinatari = new ArrayList();
                    foreach (DocsPaVO.FriendApplication.CorrLite corrLite in schedaDocumentoLite.destinatari)
                    {
                        protoInterno.destinatari.Add(ricercaCorr(corrLite, infoUtente));
                    }

                    schedaDocumentoTrasformata.protocollo = protoInterno;
                    schedaDocumentoTrasformata.tipoProto  = "I";
                }

                schedaDocumentoTrasformata.registro = objFriendApplication.registro;
                return(schedaDocumentoTrasformata);
            }
            catch (Exception ex)
            {
                logger.Debug("Errore in DocsPaWSFriendApplication - metodo : setSchedaDocumento", ex);
                throw ex;
            }
        }
Ejemplo n.º 4
0
        //2. lite
        public static DocsPaVO.OggettiLite.ProtocolloLite getProtocolloLite(DocsPaVO.documento.Protocollo proto)
        {
            DocsPaVO.OggettiLite.ProtocolloLite protLite;
            protLite = new DocsPaVO.OggettiLite.ProtocolloLite();
            if (proto == null)
            {
                return(null);
            }

            if (proto.GetType() == typeof(DocsPaVO.documento.ProtocolloEntrata))
            {
                DocsPaVO.OggettiLite.ProtocolloEntrataLite protoLiteA = new DocsPaVO.OggettiLite.ProtocolloEntrataLite();
                DocsPaVO.documento.ProtocolloEntrata       protoApp   = (DocsPaVO.documento.ProtocolloEntrata)proto;
                protoLiteA      = new DocsPaVO.OggettiLite.ProtocolloEntrataLite();
                protoLiteA.anno = protoApp.anno;
                protoLiteA.daAggiornareMittente           = protoApp.daAggiornareMittente;
                protoLiteA.daAggiornareMittenteIntermedio = protoApp.daAggiornareMittenteIntermedio;
                protoLiteA.daAggiornareMittentiMultipli   = protoApp.daAggiornareMittentiMultipli;

                protoLiteA.daProtocollare         = protoApp.daProtocollare;
                protoLiteA.dataProtocollazione    = protoApp.dataProtocollazione;
                protoLiteA.dataProtocolloMittente = protoApp.dataProtocolloMittente;

                protoLiteA.descMezzoSpedizione           = protoApp.descMezzoSpedizione;
                protoLiteA.descrizioneProtocolloMittente = protoApp.descrizioneProtocolloMittente;

                protoLiteA.invioConferma      = protoApp.invioConferma;
                protoLiteA.mezzoSpedizione    = protoApp.mezzoSpedizione;
                protoLiteA.mittente           = getCorrispondenteLite(protoApp.mittente);
                protoLiteA.mittenteIntermedio = getCorrispondenteLite(protoApp.mittenteIntermedio);

                protoLiteA.mittenti = getCorrispondentiLite(protoApp.mittenti);

                protoLiteA.modMittDest         = protoApp.modMittDest;
                protoLiteA.modMittInt          = protoApp.modMittInt;
                protoLiteA.ModUffRef           = protoApp.ModUffRef;
                protoLiteA.numero              = protoApp.numero;
                protoLiteA.protocolloAnnullato = protoApp.protocolloAnnullato;
                protoLiteA.segnatura           = protoApp.segnatura;
                protoLiteA.stampeEffettuate    = protoApp.stampeEffettuate;
                protoLiteA.ufficioReferente    = getCorrispondenteLite(protoApp.ufficioReferente);

                return(protoLiteA);
            }

            if (proto.GetType() == typeof(DocsPaVO.documento.ProtocolloUscita))
            {
                DocsPaVO.OggettiLite.ProtocolloUscitaLite protoLiteU = new DocsPaVO.OggettiLite.ProtocolloUscitaLite();
                DocsPaVO.documento.ProtocolloUscita       protoApp   = (DocsPaVO.documento.ProtocolloUscita)proto;
                protoLiteU      = new DocsPaVO.OggettiLite.ProtocolloUscitaLite();
                protoLiteU.anno = protoApp.anno;

                protoLiteU.daAggiornareDestinatari           = protoApp.daAggiornareDestinatari;
                protoLiteU.daAggiornareDestinatariConoscenza = protoApp.daAggiornareDestinatariConoscenza;
                protoLiteU.daAggiornareMittente  = protoApp.daAggiornareMittente;
                protoLiteU.daProtocollare        = protoApp.daProtocollare;
                protoLiteU.dataProtocollazione   = protoApp.dataProtocollazione;
                protoLiteU.descMezzoSpedizione   = protoApp.descMezzoSpedizione;
                protoLiteU.destinatari           = getCorrispondentiLite(protoApp.destinatari);
                protoLiteU.destinatariConoscenza = getCorrispondentiLite(protoApp.destinatariConoscenza);
                protoLiteU.modMittDest           = protoApp.modMittDest;
                protoLiteU.modMittInt            = protoApp.modMittInt;
                protoLiteU.ModUffRef             = protoApp.ModUffRef;
                protoLiteU.numero = protoApp.numero;
                protoLiteU.protocolloAnnullato = protoApp.protocolloAnnullato;
                protoLiteU.segnatura           = protoApp.segnatura;
                protoLiteU.stampeEffettuate    = protoApp.stampeEffettuate;
                protoLiteU.ufficioReferente    = getCorrispondenteLite(protoApp.ufficioReferente);

                return(protoLiteU);
            }


            if (proto.GetType() == typeof(DocsPaVO.documento.ProtocolloInterno))
            {
                DocsPaVO.OggettiLite.ProtocolloInternoLite protoLiteI = new DocsPaVO.OggettiLite.ProtocolloInternoLite();
                DocsPaVO.documento.ProtocolloInterno       protoApp   = (DocsPaVO.documento.ProtocolloInterno)proto;
                protoLiteI      = new DocsPaVO.OggettiLite.ProtocolloInternoLite();
                protoLiteI.anno = protoApp.anno;

                protoLiteI.daAggiornareDestinatari           = protoApp.daAggiornareDestinatari;
                protoLiteI.daAggiornareDestinatariConoscenza = protoApp.daAggiornareDestinatariConoscenza;
                protoLiteI.daAggiornareMittente  = protoApp.daAggiornareMittente;
                protoLiteI.daProtocollare        = protoApp.daProtocollare;
                protoLiteI.dataProtocollazione   = protoApp.dataProtocollazione;
                protoLiteI.descMezzoSpedizione   = protoApp.descMezzoSpedizione;
                protoLiteI.destinatari           = getCorrispondentiLite(protoApp.destinatari);
                protoLiteI.destinatariConoscenza = getCorrispondentiLite(protoApp.destinatariConoscenza);
                protoLiteI.modMittDest           = protoApp.modMittDest;
                protoLiteI.modMittInt            = protoApp.modMittInt;
                protoLiteI.ModUffRef             = protoApp.ModUffRef;
                protoLiteI.numero = protoApp.numero;
                protoLiteI.protocolloAnnullato = protoApp.protocolloAnnullato;
                protoLiteI.segnatura           = protoApp.segnatura;
                protoLiteI.stampeEffettuate    = protoApp.stampeEffettuate;
                protoLiteI.ufficioReferente    = getCorrispondenteLite(protoApp.ufficioReferente);

                return(protoLiteI);
            }

            return(protLite);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Uguaglianza tra due protocolli di un documento
        /// </summary>
        /// <param name="p1"></param>
        /// <param name="p2"></param>
        /// <returns></returns>
        private static bool AreEquals(DocsPaVO.documento.Protocollo p1, DocsPaVO.documento.Protocollo p2)
        {
            if (p1.GetType() != p2.GetType())
            {
                return(false);
            }

            // Uguaglianza tra i corrispondenti del protocollo
            List <DocsPaVO.utente.Corrispondente> actualList = null;
            List <DocsPaVO.utente.Corrispondente> savedList  = null;

            if (p1.GetType() == typeof(DocsPaVO.documento.ProtocolloUscita))
            {
                // ------------------------------------
                // Controllo mittenti protocollo uscita
                DocsPaVO.documento.ProtocolloUscita pu1 = (DocsPaVO.documento.ProtocolloUscita)p1;
                DocsPaVO.documento.ProtocolloUscita pu2 = (DocsPaVO.documento.ProtocolloUscita)p2;

                if (pu1.mittente != null && pu2.mittente != null)
                {
                    actualList = new List <DocsPaVO.utente.Corrispondente> {
                        pu1.mittente
                    };
                    savedList = new List <DocsPaVO.utente.Corrispondente> {
                        pu2.mittente
                    };

                    // Verifica uguaglianza tramite operazione di intersezione
                    var intersection = actualList.Intersect(savedList, new CorrispondenteEqualityComparer());
                    if (savedList.Count() != intersection.Count())
                    {
                        return(false);
                    }
                }

                // ------------------------------------

                // ------------------------------------
                // Controllo destinatari protocollo uscita
                if (pu1.destinatari != null && pu2.destinatari != null)
                {
                    actualList = new List <DocsPaVO.utente.Corrispondente>((DocsPaVO.utente.Corrispondente[])pu1.destinatari.ToArray(typeof(DocsPaVO.utente.Corrispondente)));
                    savedList  = new List <DocsPaVO.utente.Corrispondente>((DocsPaVO.utente.Corrispondente[])pu2.destinatari.ToArray(typeof(DocsPaVO.utente.Corrispondente)));

                    // Verifica uguaglianza tramite operazione di intersezione
                    var intersection = actualList.Intersect(savedList, new CorrispondenteEqualityComparer());
                    if (savedList.Count() != intersection.Count())
                    {
                        return(false);
                    }
                }
                // ------------------------------------

                // ------------------------------------
                // Controllo destinatari in CC protocollo uscita
                if (pu1.destinatariConoscenza != null && pu2.destinatariConoscenza != null)
                {
                    actualList = new List <DocsPaVO.utente.Corrispondente>((DocsPaVO.utente.Corrispondente[])pu1.destinatariConoscenza.ToArray(typeof(DocsPaVO.utente.Corrispondente)));
                    savedList  = new List <DocsPaVO.utente.Corrispondente>((DocsPaVO.utente.Corrispondente[])pu2.destinatariConoscenza.ToArray(typeof(DocsPaVO.utente.Corrispondente)));

                    // Verifica uguaglianza tramite operazione di intersezione
                    var intersection = actualList.Intersect(savedList, new CorrispondenteEqualityComparer());
                    if (savedList.Count() != intersection.Count())
                    {
                        return(false);
                    }
                }
                // ------------------------------------
            }
            else if (p1.GetType() == typeof(DocsPaVO.documento.ProtocolloEntrata))
            {
                DocsPaVO.documento.ProtocolloEntrata pe1 = (DocsPaVO.documento.ProtocolloEntrata)p1;
                DocsPaVO.documento.ProtocolloEntrata pe2 = (DocsPaVO.documento.ProtocolloEntrata)p2;

                // ------------------------------------
                // Controllo mittente protocollo entrata
                if (pe1.mittente != null && pe2.mittente != null)
                {
                    actualList = new List <DocsPaVO.utente.Corrispondente> {
                        pe1.mittente
                    };
                    savedList = new List <DocsPaVO.utente.Corrispondente> {
                        pe2.mittente
                    };

                    // Verifica uguaglianza tramite operazione di intersezione
                    var intersection = actualList.Intersect(savedList, new CorrispondenteEqualityComparer());
                    if (savedList.Count() != intersection.Count())
                    {
                        return(false);
                    }
                }
                // ------------------------------------

                // ------------------------------------
                // Controllo mittente intermedio protocollo entrata
                if (pe1.mittenteIntermedio != null && pe2.mittenteIntermedio != null)
                {
                    actualList = new List <DocsPaVO.utente.Corrispondente> {
                        pe1.mittenteIntermedio
                    };
                    savedList = new List <DocsPaVO.utente.Corrispondente> {
                        pe2.mittenteIntermedio
                    };

                    // Verifica uguaglianza tramite operazione di intersezione
                    var intersection = actualList.Intersect(savedList, new CorrispondenteEqualityComparer());
                    if (savedList.Count() != intersection.Count())
                    {
                        return(false);
                    }
                }
                // ------------------------------------

                // ------------------------------------
                // Controllo mittenti protocollo entrata
                if (pe1.mittenti != null && pe2.mittenti != null)
                {
                    actualList = new List <DocsPaVO.utente.Corrispondente>((DocsPaVO.utente.Corrispondente[])pe1.mittenti.ToArray(typeof(DocsPaVO.utente.Corrispondente)));
                    savedList  = new List <DocsPaVO.utente.Corrispondente>((DocsPaVO.utente.Corrispondente[])pe2.mittenti.ToArray(typeof(DocsPaVO.utente.Corrispondente)));

                    // Verifica uguaglianza tramite operazione di intersezione
                    var intersection = actualList.Intersect(savedList, new CorrispondenteEqualityComparer());
                    if (savedList.Count() != intersection.Count())
                    {
                        return(false);
                    }
                }
                // ------------------------------------
            }
            else if (p1.GetType() == typeof(DocsPaVO.documento.ProtocolloInterno))
            {
                DocsPaVO.documento.ProtocolloInterno pi1 = (DocsPaVO.documento.ProtocolloInterno)p1;
                DocsPaVO.documento.ProtocolloInterno pi2 = (DocsPaVO.documento.ProtocolloInterno)p2;

                if (pi1.mittente != null && pi2.mittente != null)
                {
                    actualList = new List <DocsPaVO.utente.Corrispondente> {
                        pi1.mittente
                    };
                    savedList = new List <DocsPaVO.utente.Corrispondente> {
                        pi2.mittente
                    };

                    // Verifica uguaglianza tramite operazione di intersezione
                    var intersection = actualList.Intersect(savedList, new CorrispondenteEqualityComparer());
                    if (savedList.Count() != intersection.Count())
                    {
                        return(false);
                    }
                }
                // ------------------------------------

                // ------------------------------------
                // Controllo destinatari protocollo interno
                if (pi1.destinatari != null && pi2.destinatari != null)
                {
                    actualList = new List <DocsPaVO.utente.Corrispondente>((DocsPaVO.utente.Corrispondente[])pi1.destinatari.ToArray(typeof(DocsPaVO.utente.Corrispondente)));
                    savedList  = new List <DocsPaVO.utente.Corrispondente>((DocsPaVO.utente.Corrispondente[])pi2.destinatari.ToArray(typeof(DocsPaVO.utente.Corrispondente)));

                    // Verifica uguaglianza tramite operazione di intersezione
                    var intersection = actualList.Intersect(savedList, new CorrispondenteEqualityComparer());
                    if (savedList.Count() != intersection.Count())
                    {
                        return(false);
                    }
                }
                // ------------------------------------

                // ------------------------------------
                // Controllo destinatari in CC protocollo interno
                if (pi1.destinatariConoscenza != null && pi2.destinatariConoscenza != null)
                {
                    actualList = new List <DocsPaVO.utente.Corrispondente>((DocsPaVO.utente.Corrispondente[])pi1.destinatariConoscenza.ToArray(typeof(DocsPaVO.utente.Corrispondente)));
                    savedList  = new List <DocsPaVO.utente.Corrispondente>((DocsPaVO.utente.Corrispondente[])pi2.destinatariConoscenza.ToArray(typeof(DocsPaVO.utente.Corrispondente)));

                    // Verifica uguaglianza tramite operazione di intersezione
                    var intersection = actualList.Intersect(savedList, new CorrispondenteEqualityComparer());
                    if (savedList.Count() != intersection.Count())
                    {
                        return(false);
                    }
                }
                // ------------------------------------
            }

            return(true);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Costruttore con i relativi controlli!!!
        /// </summary>
        /// <param name="schDoc"></param>
        public Metadati(DocsPaVO.documento.SchedaDocumento schDoc)
        {
            try
            {
                dataCreazione       = schDoc.dataCreazione;
                oraCreazione        = schDoc.oraCreazione;
                docNumber           = schDoc.docNumber;
                descMezzoSpedizione = schDoc.descMezzoSpedizione;

                if (schDoc.tipoProto.ToUpper() == "G")
                {
                    tipoProto = "non protocollato";
                }
                else
                {
                    tipoProto = schDoc.tipoProto;
                }

                if (schDoc.protocollo != null)
                {
                    if (schDoc.protocollo.GetType() == typeof(DocsPaVO.documento.ProtocolloEntrata))
                    {
                        DocsPaVO.documento.ProtocolloEntrata protE = (DocsPaVO.documento.ProtocolloEntrata)schDoc.protocollo;
                        ProtocolloEntrata protocolloE = new ProtocolloEntrata();
                        protocolloE.anno = protE.anno;
                        protocolloE.dataProtocollazione           = protE.dataProtocollazione;
                        protocolloE.dataProtocolloMittente        = protE.dataProtocolloMittente;
                        protocolloE.descrizioneProtocolloMittente = protE.descrizioneProtocolloMittente;
                        protocolloE.numero    = protE.numero;
                        protocolloE.segnatura = protE.segnatura;
                        if (protE.mittente != null)
                        {
                            protocolloE.mittente             = new Corrispondente();
                            protocolloE.mittente.descrizione = protE.mittente.descrizione;
                        }
                        else
                        {
                            protocolloE.mittente = null;
                        }
                        protocollo = new ProtocolloEntrata();
                        protocollo = protocolloE;
                    }

                    if (schDoc.protocollo.GetType() == typeof(DocsPaVO.documento.ProtocolloInterno))
                    {
                        DocsPaVO.documento.ProtocolloInterno protI = (DocsPaVO.documento.ProtocolloInterno)schDoc.protocollo;
                        ProtocolloInterno protocolloI = new ProtocolloInterno();
                        protocolloI.anno = protI.anno;
                        protocolloI.dataProtocollazione = protI.dataProtocollazione;
                        protocolloI.numero    = protI.numero;
                        protocolloI.segnatura = protI.segnatura;
                        if (protI.mittente != null)
                        {
                            protocolloI.mittente             = new Corrispondente();
                            protocolloI.mittente.descrizione = protI.mittente.descrizione;
                        }
                        else
                        {
                            protocolloI.mittente = null;
                        }
                        if (protI.destinatari.Count > 0)
                        {
                            protocolloI.destinatari = new ArrayList();
                            for (int i = 0; i < protI.destinatari.Count; i++)
                            {
                                DocsPaVO.utente.Corrispondente corr = (DocsPaVO.utente.Corrispondente)protI.destinatari[i];
                                Corrispondente corrCons             = new Corrispondente();
                                corrCons.descrizione = corr.descrizione;
                                protocolloI.destinatari.Add(corrCons);
                            }
                        }
                        if (protI.destinatariConoscenza.Count > 0)
                        {
                            protocolloI.destinatariConoscenza = new ArrayList();
                            for (int i = 0; i < protI.destinatariConoscenza.Count; i++)
                            {
                                DocsPaVO.utente.Corrispondente corr = (DocsPaVO.utente.Corrispondente)protI.destinatariConoscenza[i];
                                Corrispondente corrCons             = new Corrispondente();
                                corrCons.descrizione = corr.descrizione;
                                protocolloI.destinatariConoscenza.Add(corrCons);
                            }
                        }
                        protocollo = new ProtocolloInterno();
                        protocollo = protocolloI;
                    }

                    if (schDoc.protocollo.GetType() == typeof(DocsPaVO.documento.ProtocolloUscita))
                    {
                        DocsPaVO.documento.ProtocolloUscita protU = (DocsPaVO.documento.ProtocolloUscita)schDoc.protocollo;
                        ProtocolloUscita protocolloU = new ProtocolloUscita();
                        protocolloU.anno = protU.anno;
                        protocolloU.dataProtocollazione = protU.dataProtocollazione;
                        protocolloU.numero    = protU.numero;
                        protocolloU.segnatura = protU.segnatura;
                        if (protU.mittente != null)
                        {
                            protocolloU.mittente             = new Corrispondente();
                            protocolloU.mittente.descrizione = protU.mittente.descrizione;
                        }
                        else
                        {
                            protocolloU.mittente = null;
                        }
                        if (protU.destinatari.Count > 0)
                        {
                            protocolloU.destinatari = new ArrayList();
                            for (int i = 0; i < protU.destinatari.Count; i++)
                            {
                                DocsPaVO.utente.Corrispondente corr = (DocsPaVO.utente.Corrispondente)protU.destinatari[i];
                                Corrispondente corrCons             = new Corrispondente();
                                corrCons.descrizione = corr.descrizione;
                                protocolloU.destinatari.Add(corrCons);
                            }
                        }
                        if (protU.destinatariConoscenza.Count > 0)
                        {
                            protocolloU.destinatariConoscenza = new ArrayList();
                            for (int i = 0; i < protU.destinatariConoscenza.Count; i++)
                            {
                                DocsPaVO.utente.Corrispondente corr = (DocsPaVO.utente.Corrispondente)protU.destinatariConoscenza[i];
                                Corrispondente corrCons             = new Corrispondente();
                                corrCons.descrizione = corr.descrizione;
                                protocolloU.destinatariConoscenza.Add(corrCons);
                            }
                        }
                        protocollo = new ProtocolloUscita();
                        protocollo = protocolloU;
                    }
                }

                if (schDoc.oggetto != null)
                {
                    oggetto             = new Oggetto();
                    oggetto.descrizione = schDoc.oggetto.descrizione;
                }

                if (schDoc.tipologiaAtto != null)
                {
                    tipologiaAtto             = new TipologiaAtto();
                    tipologiaAtto.descrizione = schDoc.tipologiaAtto.descrizione;
                }

                if (schDoc.registro != null)
                {
                    registro             = new Registro();
                    registro.codRegistro = schDoc.registro.codRegistro;
                }

                if (schDoc.protocollatore != null)
                {
                    protocollatore = new Protocollatore();
                    protocollatore.Nome_Cognome = schDoc.protocollatore.utente_idPeople;
                }

                if (schDoc.creatoreDocumento != null)
                {
                    creatoreDocumento = new CreatoreDocumento();
                    creatoreDocumento.Nome_Cognome = schDoc.creatoreDocumento.idPeople;
                }

                if (schDoc.documenti.Count > 0)
                {
                    documenti = new ArrayList();
                    for (int i = 0; i < schDoc.documenti.Count; i++)
                    {
                        DocsPaVO.documento.Documento doc = (DocsPaVO.documento.Documento)schDoc.documenti[i];
                        Documento docCons = new Documento();
                        docCons.autore          = doc.autore;
                        docCons.dataInserimento = doc.dataInserimento;
                        docCons.descrizione     = doc.descrizione;
                        docCons.version         = doc.version;
                        documenti.Add(docCons);
                    }
                }

                if (schDoc.allegati.Count > 0)
                {
                    allegati = new ArrayList();
                    foreach (documento.Allegato t in schDoc.allegati)
                    {
                        allegati.Add(new Allegato()
                        {
                            autore          = t.autore,
                            dataInserimento = t.dataInserimento,
                            descrizione     = t.descrizione,
                            version         = t.version
                        });
                    }
                }

                if (schDoc.paroleChiave.Count > 0)
                {
                    paroleChiave = new ArrayList();
                    foreach (documento.ParolaChiave t in schDoc.paroleChiave)
                    {
                        paroleChiave.Add(new ParolaChiave {
                            descrizione = t.descrizione
                        });
                    }
                }
            }
            catch
            {
                // Ignored
            }
        }