コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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);
        }