public IHttpActionResult GetFiltered(FlightSearchDto apiObject) { List <Flight> flights = new List <Flight>(); apiObject.FixDates(); if (apiObject.NoVipBool && !apiObject.VipBool) { flights = getNoVipFlights(apiObject); } else if (!apiObject.NoVipBool && apiObject.VipBool) { flights = getVipFlights(apiObject); } else { flights = getBothVipFlights(apiObject); } var flightsDto = flights.Select(Mapper.Map <Flight, FlightDto>).ToList(); flightsDto.ForEach(dto => dto.ConvertDate()); return(Ok(flightsDto)); }
private List <Flight> getBothVipFlights(FlightSearchDto apiObject) { return(flightRepository.GetOnScheduleFlights() .Where( f => f.BasePrice >= apiObject.MinPrice && f.BasePrice <= apiObject.MaxPrice && f.Date <= apiObject.DateTo && f.Date >= apiObject.DateFrom && f.FlightPath.Destination.Name.Contains(apiObject.DestinationPlanet) && f.FlightPath.Departure.Name.Contains(apiObject.DestinationPlanet)).ToList()); }
public async Task <FlightSearch> GetFlights(FlightSearchDto flightSearch) { var url = "v1.2/flights/low-fare-search"; var parameters = new[] { new Parameter { Name = "apikey", Type = ParameterType.QueryString, Value = Environment.GetEnvironmentVariable("apikey") }, new Parameter { Name = "origin", Type = ParameterType.QueryString, Value = flightSearch.Origin }, new Parameter { Name = "destination", Type = ParameterType.QueryString, Value = flightSearch.Destination }, new Parameter { Name = "departure_date", Type = ParameterType.QueryString, Value = flightSearch.DepartureDate.ToString("yyyy-MM-dd") }, new Parameter { Name = "return_date", Type = ParameterType.QueryString, Value = flightSearch.ReturnDate.ToString("yyyy-MM-dd") }, new Parameter { Name = "adults", Type = ParameterType.QueryString, Value = flightSearch.NumberOfPassengers }, new Parameter { Name = "currency", Type = ParameterType.QueryString, Value = flightSearch.Currency } }; return(await GetApiResponseAsync <FlightSearch>(url, parameters)); }
public async Task <IActionResult> Get([FromQuery] FlightSearchDto flightSearch) { if (!ModelState.IsValid) { return(BadRequest(new { message = "Invalid or missing input parameters." })); } FlightSearch serviceResult; try { serviceResult = await service.GetFlights(flightSearch); } catch (ApiException ex) { return(StatusCode((int)ex.StatusCode, new { message = ex.Message })); } catch (Exception ex) { return(StatusCode((int)HttpStatusCode.InternalServerError, new { message = ex.Message })); } var result = serviceResult.ExportToSearchResultDtos(); return(Ok(result)); }