Esempio n. 1
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);
        }
Esempio n. 2
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);
        }