예제 #1
0
        /// <summary>
        /// Consulta de vuelos entre dos ciudades con prioridad en las tarifas
        /// </summary>
        /// <param name="filtro"></param>
        /// <returns></returns>
        public List <VueloDTO> ConsultarVueloTarifas(VueloCiudadFilter filtro)
        {
            IVueloRepository vueloRepository = DependencyInjectionContainer.Resolve <IVueloRepository>();
            IVueloDomain     vueloDomain     = DependencyInjectionContainer.Resolve <IVueloDomain>();

            return(vueloDomain.ConsultarVueloTarifas(vueloRepository.ConsultarVuelo(filtro)));
        }
예제 #2
0
        /// <summary>
        /// Consulta de vuelos entre dos ciudades.
        /// </summary>
        /// <param name="filtro"></param>
        /// <returns></returns>
        public List <VueloDTO> ConsultarVuelo(VueloCiudadFilter filtro)
        {
            List <VueloDTO> listaVuelos = new List <VueloDTO>();

            using (AerolineaTnsEntities context = new AerolineaTnsEntities())
            {
                var vuelos = context.Vuelo.Where(vuelo => vuelo.IdOrigen == filtro.IdOrigen && vuelo.IdDestino == filtro.IdDestino);

                listaVuelos = vuelos.Select(vuelo => new VueloDTO()
                {
                    Aerolinea         = vuelo.Aerolinea.Nombre,
                    AeropuertoDestino = vuelo.Destino.Aeropuerto,
                    AeropuertoOrigen  = vuelo.Origen.Aeropuerto,
                    CiudadDestino     = vuelo.Destino.Ciudad.NombreCiudad,
                    CiudadOrigen      = vuelo.Origen.Ciudad.NombreCiudad,
                    IdAerolinea       = vuelo.IdAerolinea,
                    IdDestino         = vuelo.IdDestino,
                    IdOrigen          = vuelo.IdOrigen,
                    IdVuelo           = vuelo.IdVuelo,
                    Fecha             = vuelo.Fecha,
                    IdEstado          = vuelo.IdEstado,
                    NombreEstado      = vuelo.EstadoVuelo.NombreEstado,
                    Tarifas           = vuelo.Tarifa.Select(tarifa => new TarifaDTO()
                    {
                        IdTipoAsiento = tarifa.IdTipoAsiento,
                        IdVuelo       = vuelo.IdVuelo,
                        TipoAsiento   = tarifa.TipoAsiento.Nombre,
                        ValorTiquete  = tarifa.ValorTiquete
                    }).ToList(),
                }).ToList();
            }

            return(listaVuelos);
        }
        public void ConsultarEstadosVuelosTest()
        {
            VueloApplication      target = new VueloApplication();
            List <EstadoVueloDTO> vuelos = new List <EstadoVueloDTO>();
            VueloCiudadFilter     filtro = new VueloCiudadFilter();

            filtro.IdOrigen  = 6;
            filtro.IdDestino = 9;
            vuelos           = target.ConsultarEstadosVuelos(filtro);
            Assert.IsNotNull(vuelos);
        }
예제 #4
0
        /// <summary>
        /// Consultar el estados de los vuelos entre dos ciudades.
        /// </summary>
        /// <param name="filtro"></param>
        /// <returns></returns>
        public List <EstadoVueloDTO> ConsultarEstadosVuelo(VueloCiudadFilter filtro)
        {
            List <EstadoVueloDTO> listaVuelos = new List <EstadoVueloDTO>();

            using (AerolineaTnsEntities context = new AerolineaTnsEntities())
            {
                var vuelos = context.Vuelo.Where(vuelo => vuelo.IdOrigen == filtro.IdOrigen && vuelo.IdDestino == filtro.IdDestino);

                listaVuelos = vuelos.Select(vuelo => new EstadoVueloDTO()
                {
                    Aerolinea           = vuelo.Aerolinea.Nombre,
                    AeropuertoDestino   = vuelo.Destino.Aeropuerto,
                    AeropuertoOrigen    = vuelo.Origen.Aeropuerto,
                    CiudadDestino       = vuelo.Destino.Ciudad.NombreCiudad,
                    CiudadOrigen        = vuelo.Origen.Ciudad.NombreCiudad,
                    IdAerolinea         = vuelo.IdAerolinea,
                    IdDestino           = vuelo.IdDestino,
                    IdOrigen            = vuelo.IdOrigen,
                    IdVuelo             = vuelo.IdVuelo,
                    Fecha               = vuelo.Fecha,
                    IdEstado            = vuelo.IdEstado,
                    NombreEstado        = vuelo.EstadoVuelo.NombreEstado,
                    AsientosDisponibles = vuelo.Avion.Asiento
                                          .Where(asiento =>
                                                 !(vuelo.Reserva.Where(item => item.IdVuelo == vuelo.IdVuelo).FirstOrDefault().TiquetePasajero.Select(tiquete => tiquete.Asiento.IdAsiento).ToList()).Contains(asiento.IdAsiento))
                                          .Select(asientodto => new AsientoDTO()
                    {
                        Codigo           = asientodto.Codigo,
                        IdAsiento        = asientodto.IdAsiento,
                        IdTipoAsiento    = asientodto.IdTipoAsiento,
                        SalidaEmergencia = asientodto.SalidaEmergencia,
                        TipoAsiento      = asientodto.TipoAsiento.Nombre
                    }).ToList(),
                }).ToList();
            }

            return(listaVuelos);
        }
예제 #5
0
        public IActionResult ConsultarVuelosTarifas([FromQuery] VueloCiudadFilter vueloFiltro)
        {
            try
            {
                if (vueloFiltro.IdOrigen == 0 || vueloFiltro.IdDestino == 0)
                {
                    return(BadRequest(BadRequestError));
                }

                List <VueloDTO> vuelos = new VueloApplication().ConsultarVueloTarifas(vueloFiltro);

                if (!vuelos.Any())
                {
                    return(NotFound(NotFoundError));
                }

                return(Ok(vuelos));
            }
            catch (Exception ex)
            {
                logger.Error(ex, InternalServerErrorConsultarVuelo);
                return(StatusCode((int)HttpStatusCode.InternalServerError, InternalServerErrorConsultarVuelo));
            }
        }
예제 #6
0
        /// <summary>
        /// Consultar estados de los vuelos y la disponibilidad de asientos.
        /// </summary>
        /// <param name="filtro"></param>
        /// <returns></returns>
        public List <EstadoVueloDTO> ConsultarEstadosVuelos(VueloCiudadFilter filtro)
        {
            IVueloRepository vueloRepository = DependencyInjectionContainer.Resolve <IVueloRepository>();

            return(vueloRepository.ConsultarEstadosVuelo(filtro));
        }