示例#1
0
        public OggettoDocumentazioneBase RecuperaOggettoDocumentazione(int oggettoID, int oggettoProceduraID)
        {
            OggettoDocumentazioneBase oggetto = null;

            SqlServerExecuteObject sseo = null;
            SqlDataReader          dr   = null;

            sseo             = new SqlServerExecuteObject();
            sseo.CommandText = "dbo.SP_RecuperaDocumentazioneOggettoBase";
            sseo.CommandType = CommandType.StoredProcedure;
            sseo.SqlParameters.AddWithValue("@OggettoID", oggettoID);
            sseo.SqlParameters.AddWithValue("@OggettoProceduraID", oggettoProceduraID);

            dr = SqlProvider.ExecuteReaderObject(sseo);

            if (dr != null)
            {
                List <TipoOggetto> tipiOggetto = TipoOggettoRepository.Instance.RecuperaTipiOggetto();
                IEnumerable <DatoAmministrativo> datiAmministrativi = DatoAmministrativoRepository.Instance.RecuperaDatiAmministrativi();
                List <Procedura>      procedure            = ProceduraRepository.Instance.RecuperaProcedure();
                List <StatoProcedura> statiProceduraVIPERA = StatoProceduraVIPERARepository.Instance.RecuperaStatiProceduraVIPERA();
                List <StatoProcedura> statiProceduraAIA    = StatoProceduraAIARepository.Instance.RecuperaStatiProceduraAIA();

                if (dr.Read())
                {
                    oggetto    = new OggettoDocumentazioneBase();
                    oggetto.ID = oggettoID;
                    oggetto.OggettoProceduraID = oggettoProceduraID;

                    oggetto.TipoOggetto = tipiOggetto.FirstOrDefault(x => x.ID == dr.GetInt32(1));
                    oggetto._nome_IT    = dr.GetString(2);
                    oggetto._nome_EN    = dr.GetString(3);
                }

                dr.NextResult();

                if (dr.Read())
                {
                    ProceduraCollegata proceduraCollegata = new ProceduraCollegata();
                    StatoProcedura     statoProcedura     = null;
                    if (!dr.IsDBNull(2))
                    {
                        if (oggetto.TipoOggetto.MacroTipoOggetto.Enum.Equals(MacroTipoOggettoEnum.Aia))
                        {
                            statoProcedura = statiProceduraAIA.FirstOrDefault(x => x.ID == dr.GetInt32(2));
                        }
                        else
                        {
                            statoProcedura = statiProceduraVIPERA.FirstOrDefault(x => x.ID == dr.GetInt32(2));
                        }
                    }



                    proceduraCollegata.OggettoProceduraID = dr.GetInt32(0);
                    proceduraCollegata.Procedura          = procedure.FirstOrDefault(x => x.ID == dr.GetInt32(1));
                    proceduraCollegata.StatoProcedura     = statoProcedura;
                    proceduraCollegata.Data            = dr.IsDBNull(3) ? null : (DateTime?)dr.GetDateTime(3);
                    proceduraCollegata.NumeroDocumenti = dr.GetInt32(4);
                    proceduraCollegata.ViperaAiaID     = dr.IsDBNull(5) ? null : dr.GetString(5);

                    if (oggetto != null)
                    {
                        oggetto.ProceduraCollegata = proceduraCollegata;
                    }
                }

                dr.NextResult();

                while (dr.Read())
                {
                    ValoreDatoAmministrativo valoreDatoAmministrativo = new ValoreDatoAmministrativo();

                    valoreDatoAmministrativo.OggettoProceduraID = dr.GetInt32(0);
                    valoreDatoAmministrativo.Procedura          = procedure.Single(x => x.ID == dr.GetInt32(1));
                    valoreDatoAmministrativo._vBool             = dr.IsDBNull(2) ? null : (bool?)dr.GetBoolean(2);
                    valoreDatoAmministrativo._vDatetime         = dr.IsDBNull(3) ? null : (DateTime?)dr.GetDateTime(3);
                    valoreDatoAmministrativo._vDouble           = dr.IsDBNull(4) ? null : (double?)dr.GetDouble(4);
                    valoreDatoAmministrativo._vString           = dr.IsDBNull(5) ? "" : dr.GetString(5);
                    valoreDatoAmministrativo.DatoAmministrativo = datiAmministrativi.Single(x => x.ID == dr.GetInt32(6));
                    valoreDatoAmministrativo.ViperaAiaID        = dr.IsDBNull(7) ? null : dr.GetString(7);

                    if (oggetto != null)
                    {
                        oggetto.DatiAmministrativi.Add(valoreDatoAmministrativo);
                    }
                }

                dr.NextResult();

                while (dr.Read())
                {
                    StatoProcedura statoProcedura = null;

                    if (!dr.IsDBNull(3))
                    {
                        if (oggetto.TipoOggetto.MacroTipoOggetto.Enum.Equals(MacroTipoOggettoEnum.Aia))
                        {
                            statoProcedura = statiProceduraAIA.FirstOrDefault(x => x.ID == dr.GetInt32(3));
                        }
                        else
                        {
                            statoProcedura = statiProceduraVIPERA.FirstOrDefault(x => x.ID == dr.GetInt32(3));
                        }
                    }

                    ValoreDatoAmministrativo valoreDatoAmministrativo = new ValoreDatoAmministrativo();
                    valoreDatoAmministrativo.OggettoProceduraID = dr.GetInt32(0);
                    valoreDatoAmministrativo.Procedura          = procedure.Single(x => x.ID == dr.GetInt32(1));
                    valoreDatoAmministrativo._vBool             = null;
                    valoreDatoAmministrativo._vDatetime         = null;
                    valoreDatoAmministrativo._vDouble           = null;
                    valoreDatoAmministrativo._vString           = statoProcedura != null?statoProcedura.GetNome() : "";

                    valoreDatoAmministrativo.DatoAmministrativo = datiAmministrativi.FirstOrDefault(x => x.ID == dr.GetInt32(2));
                    valoreDatoAmministrativo.ViperaAiaID        = dr.IsDBNull(4) ? null : dr.GetString(4);

                    if (oggetto != null)
                    {
                        oggetto.DatiAmministrativi.Add(valoreDatoAmministrativo);
                    }
                }
            }

            if (dr != null)
            {
                dr.Close();
                dr.Dispose();
            }

            return(oggetto);
        }
示例#2
0
        private OggettoInfoBase RiempiIstanzaOggettoInfoBase(SqlDataReader dr)
        {
            // Informazioni Comuni tra via e vas
            OggettoInfoBase oggetto = null;

            List <RuoloEntita>               ruoliEntita         = RuoloEntitaRepository.Instance.RecuperaRuoliEntita();
            List <TipoLink>                  tipiLink            = TipoLinkRepository.Instance.RecuperaTipiLink();
            List <TipologiaTerritorio>       tipologieTerritorio = TipologiaTerritorioRepository.Instance.RecuperaTipologieTerritorio();
            IEnumerable <DatoAmministrativo> datiAmministrativi  = DatoAmministrativoRepository.Instance.RecuperaDatiAmministrativi();
            List <Procedura>                 procedure           = ProceduraRepository.Instance.RecuperaProcedure();
            List <StatoProcedura>            statiProcedura;

            while (dr.Read())
            {
                oggetto = new OggettoInfoBase();

                oggetto.ID                 = dr.GetInt32(0);
                oggetto.TipoOggetto        = TipoOggettoRepository.Instance.RecuperaTipoOggetto(dr.GetInt32(1));
                oggetto._nome_IT           = dr.GetString(2);
                oggetto._nome_EN           = dr.GetString(3);
                oggetto._descrizione_IT    = dr.IsDBNull(4) ? "" : dr.GetString(4);
                oggetto._descrizione_EN    = dr.IsDBNull(5) ? "" : dr.GetString(5);
                oggetto.LinkLocalizzazione = dr.IsDBNull(6) ? null : LinkUtility.LinkLocalizzazione(dr.GetString(6), oggetto.ID);
                oggetto.ScadenzaPresentazioneOsservazioni = dr.IsDBNull(7) ? null : (DateTime?)dr.GetDateTime(7);
                oggetto.OggettoProceduraID = dr.GetInt32(8);
            }

            if (oggetto.TipoOggetto.MacroTipoOggetto.Enum.Equals(MacroTipoOggettoEnum.Aia))
            {
                statiProcedura = StatoProceduraAIARepository.Instance.RecuperaStatiProceduraAIA();
            }
            else
            {
                statiProcedura = StatoProceduraVIPERARepository.Instance.RecuperaStatiProceduraVIPERA();
            }

            if (oggetto != null)
            {
                // ENTITA
                dr.NextResult();

                while (dr.Read())
                {
                    EntitaCollegata entitaCollegata = new EntitaCollegata();

                    entitaCollegata.Entita = new Entita(dr.GetInt32(0), dr.GetString(1), dr.IsDBNull(3) ? "" : dr.GetString(3),
                                                        dr.IsDBNull(4) ? "" : dr.GetString(4), dr.IsDBNull(5) ? "" : dr.GetString(5),
                                                        dr.IsDBNull(6) ? "" : dr.GetString(6), dr.IsDBNull(7) ? "" : dr.GetString(7),
                                                        dr.IsDBNull(8) ? "" : dr.GetString(8));

                    entitaCollegata.Ruolo = ruoliEntita.Single(x => x.ID == dr.GetInt32(2));

                    oggetto.EntitaCollegate.Add(entitaCollegata);
                }

                // LINK
                dr.NextResult();

                while (dr.Read())
                {
                    LinkCollegato linkCollegato = new LinkCollegato();

                    linkCollegato.Link = new Link(dr.GetInt32(0), dr.GetString(1), dr.GetString(2), dr.GetString(3));
                    linkCollegato.Tipo = tipiLink.Single(x => x.ID == dr.GetInt32(4));

                    oggetto.LinkCollegati.Add(linkCollegato);
                }

                // TERRITORI
                dr.NextResult();

                while (dr.Read())
                {
                    Territorio territorio = new Territorio();

                    territorio.ID          = dr.GetGuid(0);
                    territorio.GenitoreID  = dr.IsDBNull(1) ? null : (Guid?)dr.GetGuid(1);
                    territorio.Tipologia   = tipologieTerritorio.Single(x => x.ID == dr.GetInt32(2));
                    territorio.Nome        = dr.GetString(3);
                    territorio.CodiceIstat = dr.IsDBNull(4) ? "" : dr.GetString(4);

                    oggetto.Territori.Add(territorio);
                }

                // PROCEDURE COLLEGATE
                dr.NextResult();

                while (dr.Read())
                {
                    ProceduraCollegata proceduraCollegata = new ProceduraCollegata();
                    StatoProcedura     statoProcedura     = null;
                    if (!dr.IsDBNull(2))
                    {
                        statoProcedura = statiProcedura.FirstOrDefault(x => x.ID == dr.GetInt32(2));
                    }

                    proceduraCollegata.OggettoProceduraID = dr.GetInt32(0);
                    proceduraCollegata.Procedura          = procedure.FirstOrDefault(x => x.ID == dr.GetInt32(1));
                    proceduraCollegata.StatoProcedura     = statoProcedura;
                    proceduraCollegata.Data            = dr.IsDBNull(3) ? null : (DateTime?)dr.GetDateTime(3);
                    proceduraCollegata.NumeroDocumenti = dr.GetInt32(4);
                    proceduraCollegata.ViperaAiaID     = dr.IsDBNull(5) ? null : dr.GetString(5);

                    oggetto.ProcedureCollegate.Add(proceduraCollegata);
                }

                // DATI AMMINISTRATIVI
                dr.NextResult();

                while (dr.Read())
                {
                    ValoreDatoAmministrativo valoreDatoAmministrativo = new ValoreDatoAmministrativo();

                    valoreDatoAmministrativo.OggettoProceduraID = dr.GetInt32(0);
                    valoreDatoAmministrativo.Procedura          = procedure.Single(x => x.ID == dr.GetInt32(1));
                    valoreDatoAmministrativo._vBool             = dr.IsDBNull(2) ? null : (bool?)dr.GetBoolean(2);
                    valoreDatoAmministrativo._vDatetime         = dr.IsDBNull(3) ? null : (DateTime?)dr.GetDateTime(3);
                    valoreDatoAmministrativo._vDouble           = dr.IsDBNull(4) ? null : (double?)dr.GetDouble(4);
                    valoreDatoAmministrativo._vString           = dr.IsDBNull(5) ? "" : dr.GetString(5);
                    valoreDatoAmministrativo.DatoAmministrativo = datiAmministrativi.Single(x => x.ID == dr.GetInt32(6));
                    valoreDatoAmministrativo.ViperaAiaID        = dr.IsDBNull(7) ? null : dr.GetString(7);

                    oggetto.DatiAmministrativi.Add(valoreDatoAmministrativo);
                }

                dr.NextResult();

                if (dr.HasRows)
                {
                    while (dr.Read())
                    {
                        StatoProcedura statoProcedura = null;
                        if (!dr.IsDBNull(3))
                        {
                            statoProcedura = statiProcedura.FirstOrDefault(x => x.ID == dr.GetInt32(3));
                        }

                        ValoreDatoAmministrativo valoreDatoAmministrativo = new ValoreDatoAmministrativo();
                        valoreDatoAmministrativo.OggettoProceduraID = dr.GetInt32(0);
                        valoreDatoAmministrativo.Procedura          = procedure.Single(x => x.ID == dr.GetInt32(1));
                        valoreDatoAmministrativo._vBool             = null;
                        valoreDatoAmministrativo._vDatetime         = null;
                        valoreDatoAmministrativo._vDouble           = null;
                        valoreDatoAmministrativo._vString           = statoProcedura != null?statoProcedura.GetNome() : "";

                        valoreDatoAmministrativo.DatoAmministrativo = datiAmministrativi.FirstOrDefault(x => x.ID == dr.GetInt32(2));
                        valoreDatoAmministrativo.ViperaAiaID        = dr.IsDBNull(4) ? null : dr.GetString(4);

                        oggetto.DatiAmministrativi.Add(valoreDatoAmministrativo);
                    }
                }
            }

            return(oggetto);
        }