protected virtual List <HistCatalogoModel> FillHistCatalogoList(IDataReader reader, IEnumerable <SerieModel> seriesList, bool limitarStrings) { List <HistCatalogoModel> result = new List <HistCatalogoModel>(); while (reader.Read()) { int origen = 0; #if DEBUG origen = (int)reader.GetInt64(reader.GetOrdinal("Hist")); #else origen = (int)reader.GetInt32(reader.GetOrdinal("Hist")); //en la computadora de desarrollo, el mysql, devuelve int64, pero en el servidor Plesk del host, devuelve int32 #endif HistCatalogoModel nc = new HistCatalogoModel(); nc.Fill(reader, limitarStrings); if (seriesList.Count() > 0) { nc.SeriesNombre = seriesList.FirstOrDefault(sm => sm.ID == nc.IdSerie.GetValueOrDefault(0))?.Nombre; } nc.Origen = origen == 0 ? (byte)0 : (byte)2; result.Add(nc); } return(result); }
public virtual CatalogoModel GetCatalogo(QueryExpresion expr, Dictionary <string, object> parameters, bool paraEditar, byte includeHist, HttpContextBase context) { SeriesDataService ds = new SeriesDataService(); var seriesList = ds.ObtenerSeries(null, null, context); IDataReader read; switch (includeHist) { case 0: //sin hist read = DataConnection.Instance.ExecuteQuery( string.Format(SqlResource.SqlCatalogoResource, expr?.ToString() ?? "1=1"), parameters, context, 0); if (read.Read()) { CatalogoModel nc = new CatalogoModel(); nc.Fill(read); if (seriesList.Count() > 0) { nc.SeriesNombre = seriesList.FirstOrDefault(sm => sm.ID == nc.IdSerie.GetValueOrDefault(0))?.Nombre; } nc.EstablecerSignaturaPorDefecto(); nc.ListaMaterias = !paraEditar?this.ObtenerMateriasDeCatalogo(nc.ID, context) : null; nc.ListaMateriasSeleccionables = paraEditar ? this.ObtenerMateriasSeleccionablesDeCatalogo(nc.ID, context) : null; nc.ListaLugares = this.ObtenerLugaresDeCatalogo(nc.ID, context); nc.Origen = 0; return(nc); } break; case 1: read = DataConnection.Instance.ExecuteQuery( string.Format(SqlResource.SqlCatalogoAmbosResource, expr?.ToString() ?? "1=1"), parameters, context, 0); if (read.Read()) { int origen = (int)read.GetInt64(read.GetOrdinal("Hist")); CatalogoModel nc = new CatalogoModel(); nc.Fill(read); if (seriesList.Count() > 0) { nc.SeriesNombre = seriesList.FirstOrDefault(sm => sm.ID == nc.IdSerie.GetValueOrDefault(0))?.Nombre; } nc.EstablecerSignaturaPorDefecto(); nc.Origen = origen == 0 ? (byte)0 : (byte)2; if (origen == 0) { nc.ListaMaterias = !paraEditar?this.ObtenerMateriasDeCatalogo(nc.ID, context) : null; nc.ListaMateriasSeleccionables = paraEditar ? this.ObtenerMateriasSeleccionablesDeCatalogo(nc.ID, context) : null; nc.ListaLugares = this.ObtenerLugaresDeCatalogo(nc.ID, context); } return(nc); } break; case 2: //solo hist read = DataConnection.Instance.ExecuteQuery( string.Format(SqlResource.SqlHistCatalogoResource, expr?.ToString() ?? "1=1"), parameters, context, 0); if (read.Read()) { HistCatalogoModel nc = new HistCatalogoModel(); nc.Fill(read); if (seriesList.Count() > 0) { nc.SeriesNombre = seriesList.FirstOrDefault(sm => sm.ID == nc.IdSerie.GetValueOrDefault(0))?.Nombre; } if (string.IsNullOrEmpty(nc.Signatura)) { nc.EstablecerSignaturaPorDefecto(); } return(nc); } break; } return(null); }