public static List <Flight> SearchFlights(SearchFlightForm form) { using (var _context = new DiemServiceDB()) { List <Flight> retVal = new List <Flight>(); if (form.Flight_Arrival_Time == null || form.Flight_Departure_Time == null || form.From_Location == null || form.To_Location == null) { throw new Exception("BAD QUERY VERY BAD QUERY"); } retVal = _context.FlightDbSet.Include(x => x.From_Location).Include(x => x.To_Location).Include(x => x.Transits).Include(x => x.Provider) .Where(x => x.To_Location.State == form.To_Location && x.From_Location.State == form.From_Location && DbFunctions.TruncateTime(x.Flight_Arrival_Time) == form.Flight_Arrival_Time.Date && DbFunctions.TruncateTime(x.Flight_Departure_Time) == form.Flight_Departure_Time.Date) .ToList(); if (form.Free_seats != 0) { retVal = retVal.Where(u => u.Seats.Count(x => x == '0') > form.Free_seats).ToList(); } if (form.Flight_class != 0) { retVal = retVal.Where(u => u.FlightClass == form.Flight_class).ToList(); } return(retVal); } }
public HttpResponseMessage SearchFlights(SearchFlightForm form) { return(Request.CreateResponse(HttpStatusCode.OK, FlightDbManager.SearchFlights(form))); }