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));
     }
 }
Exemple #3
0
        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));
 }