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); }
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); }