public ICollection <EstadoTo> ObtenerEstadosPorFiltro(FiltroGeograficoTo filtro) { List <EstadoTo> estados = new List <EstadoTo>(); using (var Contexto = ViveVolarDbContext.GetDbContext()) { var estadoRepositorio = new EstadoRepository(Contexto); var expressionFilter = ConstruirExpresionConsultaEstadoPorFiltroGeografico(filtro); if (expressionFilter != null) { var result = estadoRepositorio.Filtrar(expressionFilter).ToList(); estados = Mapper.Map <List <EstadoTo> >(result); } else { Expression <Func <Ciudad, bool> > filtroInfo = null; var ciudadRepositorio = new CiudadRepository(Contexto); if (filtro.JerarquiaGeografica == FiltroGeografico.IdCiudad) { filtroInfo = c => c.Id == filtro.Id; } var result = ciudadRepositorio.Filtrar(filtroInfo).Select(c => c.Estado).ToList(); estados = Mapper.Map <List <EstadoTo> >(result); } } return(estados); }
public ICollection <AeropuertoTo> ObtenerAeropuertosPorFiltro(FiltroGeograficoTo filtro) { List <AeropuertoTo> aeropuertos = new List <AeropuertoTo>(); using (var Contexto = ViveVolarDbContext.GetDbContext()) { var aeropuertoRepositorio = new AeropuertoRepository(Contexto); var result = aeropuertoRepositorio.Filtrar(ConstruirExpresionConsultaAeropuertoPorFiltroGeografico(filtro)).ToList(); aeropuertos = Mapper.Map <List <AeropuertoTo> >(result); } return(aeropuertos); }
public ICollection <CiudadTo> ObtenerCiudadesPorFiltro(FiltroGeograficoTo filtro) { List <CiudadTo> ciudades = new List <CiudadTo>(); using (var Contexto = ViveVolarDbContext.GetDbContext()) { var ciudadRepositorio = new CiudadRepository(Contexto); var result = ciudadRepositorio.Filtrar(ConstruirExpresionConsultaCiudadPorFiltroGeografico(filtro)).ToList(); ciudades = Mapper.Map <List <CiudadTo> >(result); } return(ciudades); }
public ICollection <PaisTo> ObtenerPaisesPorFiltro(FiltroGeograficoTo filtro) { List <PaisTo> paises = new List <PaisTo>(); if (filtro.JerarquiaGeografica != FiltroGeografico.IdPais) { paises.Add(ObtenerEstadosPorFiltro(filtro).FirstOrDefault().Pais); } else { paises.Add(ObtenerPaisPorIdAsync(filtro.Id).Result); } return(paises); }
public ICollection <OrigenDestinoTo> ObtenerOrigenesDestinosPorFiltro(FiltroGeograficoTo filtro) { List <OrigenDestinoTo> origenesDestinos = new List <OrigenDestinoTo>(); using (var Contexto = ViveVolarDbContext.GetDbContext()) { List <AeropuertoTo> aeropuertos = new List <AeropuertoTo>(); aeropuertos = ObtenerAeropuertosPorFiltro(filtro).ToList(); foreach (var a in aeropuertos) { origenesDestinos.AddRange(a.OrigenDestinos); } } return(origenesDestinos); }
public Expression <Func <Aeropuerto, bool> > ConstruirExpresionConsultaAeropuertoPorFiltroGeografico(FiltroGeograficoTo filtro) { Expression <Func <Aeropuerto, bool> > filtroInfo = null; switch (filtro.JerarquiaGeografica) { case FiltroGeografico.IdCiudad: filtroInfo = a => a.IdCiudad == filtro.Id; break; case FiltroGeografico.IdEstado: filtroInfo = a => a.Ciudad.IdEstado == filtro.Id; break; case FiltroGeografico.IdPais: filtroInfo = a => a.Ciudad.Estado.IdPais == filtro.Id; break; } return(filtroInfo); }
public Expression <Func <Estado, bool> > ConstruirExpresionConsultaEstadoPorFiltroGeografico(FiltroGeograficoTo filtro) { Expression <Func <Estado, bool> > filtroInfo = null; switch (filtro.JerarquiaGeografica) { case FiltroGeografico.IdEstado: filtroInfo = a => a.Id == filtro.Id; break; case FiltroGeografico.IdPais: filtroInfo = a => a.Pais.Id == filtro.Id; break; } return(filtroInfo); }