public async Task <HttpResponseMessage> PostFlightSearch(HttpRequestMessage request, FlightSearch flight) { if (!IsValid(flight)) { return(request.CreateResponse(HttpStatusCode.BadRequest)); } var flights = FlightStorage.GetFlights(flight.From, flight.To, flight.DepartureDate); var response = new FlightSearchResponse(flights); return(request.CreateResponse(HttpStatusCode.OK, response)); }
public HttpResponseMessage Get(HttpRequestMessage request, int id) { lock (FlightStorage.GetFlights()) { var flight = FlightStorage.GetFlightById(id); if (flight == null) { return(request.CreateResponse(HttpStatusCode.NotFound)); } return(request.CreateResponse(HttpStatusCode.OK, flight)); } }
public AirportRequest[] GetAirports(string search) { var flights = FlightStorage.GetFlights(); var result = new HashSet <AirportRequest>(); flights.ForEach(f => { result.Add(f.From); result.Add(f.To); }); return(result.Where(a => a.Airport.ToLower().Contains(search.ToLower().Trim()) || a.City.ToLower().Contains(search.ToLower().Trim()) || a.Country.ToLower().Contains(search.ToLower().Trim())) .ToArray()); }
public HttpResponseMessage FlightSearch(HttpRequestMessage request, FlightSearchRequest search) { if (IsValid(search) && IsDifferentAirport(search)) { var result = FlightStorage.GetFlights(); var matchedItems = result.Where(f => f.From.Airport.ToLower().Contains(search.From.ToLower()) || f.To.Airport.ToLower().Contains(search.To.ToLower()) || f.DepartureTime.ToLower().Contains(search.To.ToLower())).ToList(); var response = new FlightSearchResult { TotalItems = result.Length, Items = matchedItems, Page = matchedItems.Any() ? 1 : 0 }; return(request.CreateResponse(HttpStatusCode.OK, response)); } return(request.CreateResponse(HttpStatusCode.BadRequest)); }