public IEnumerable <Flight> SearchAvaibleFlights(SearchFlightsViewModel filters) { var jsonFilters = new FiltersJsonObject(); IEnumerable <Flight> result = this._apiConn.SearchFlights(filters, jsonFilters).ToImmutableList(); return(result); }
// This method creates the json string with the query data. // It receives the filters to search from the view-model and put the data into // FiltersJsonObject. This last object is serialized as a Json string. private string PrepareJson(SearchFlightsViewModel filters, FiltersJsonObject queryApiJson) { queryApiJson.Destination = filters.Destination; queryApiJson.Origin = filters.Origin; queryApiJson.From = filters.From.ToString("yyyy-MM-dd"); string jsonFilters = JsonConvert.SerializeObject(queryApiJson); return(jsonFilters); }
// This is the principal method. It uses the two previous methods for search avaible flights in the api, // and if it finds return a list of flights, but if it doesn´t find any flight it throws a exception. public List <Flight> SearchFlights(SearchFlightsViewModel filters, FiltersJsonObject queryApiJson) { var jsonFilters = PrepareJson(filters, queryApiJson); dynamic result = this._apiConn.Post(this.ApiUrl, jsonFilters); List <Flight> flights = null; if (result != null) { flights = GetFlights(result); bool isEmptyList = flights[0] == null; if (!isEmptyList) { return(flights); } else { flights = null; } } return(flights); }