Exemple #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);
        }
Exemple #2
0
        public ActionResult Documentazione(OggettiDocumentazioneBaseModel model)
        {
            ActionResult result = null;
            OggettoDocumentazioneBase oggetto = OggettoRepository.Instance.RecuperaOggettoDocumentazione(model.ID, model.OggettoProceduraID);

            ViewBag.ClasseDocumentazione = "documentazione";

            if (oggetto != null)
            {
                model.VoceMenu = VoceMenuRepository.Instance.RecuperaVoceMenu("documentazione");
                model.Oggetto  = oggetto;

                int totale = 0;

                if (!string.IsNullOrWhiteSpace(model.Mode) && model.Mode.Equals("export", StringComparison.CurrentCultureIgnoreCase))
                {
                    byte[] data = null;

                    IEnumerable <DocumentoElenco> esportazione = DocumentoElencoRepository.Instance.RecuperaDocumentiElenco(oggetto.TipoOggetto.MacroTipoOggetto.ID,
                                                                                                                            model.OggettoProceduraID,
                                                                                                                            model.RaggruppamentoID,
                                                                                                                            CultureHelper.GetCurrentCultureShortName(),
                                                                                                                            model.Testo ?? "",
                                                                                                                            "",
                                                                                                                            "",
                                                                                                                            0,
                                                                                                                            int.MaxValue,
                                                                                                                            out totale);

                    data = EsportazioneUtils.GeneraXlsxDocumentiDocumentazione(esportazione, oggetto.TipoOggetto.MacroTipoOggetto.Enum);

                    if (data != null)
                    {
                        result = File(data, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Export.xlsx");
                    }
                    else
                    {
                        result = HttpNotFound();
                    }
                }
                else
                {
                    IEnumerable <DocumentoElenco> documenti = DocumentoElencoRepository.Instance.RecuperaDocumentiElenco(oggetto.TipoOggetto.MacroTipoOggetto.ID,
                                                                                                                         model.OggettoProceduraID,
                                                                                                                         model.RaggruppamentoID,
                                                                                                                         CultureHelper.GetCurrentCultureShortName(),
                                                                                                                         model.Testo ?? "",
                                                                                                                         "",
                                                                                                                         "",
                                                                                                                         model.IndiceInizio,
                                                                                                                         model.IndiceInizio + model.DimensionePagina,
                                                                                                                         out totale);
                    model.Documenti = documenti;

                    model.TotaleRisultati = totale;

                    result = View("Documentazione", model);
                }
            }
            else
            {
                result = HttpNotFound();
            }

            return(result);
        }