protected async Task <List <Car> > TuroSearch(GeoPoint location, string make = null, string model = null) { var restTasks = new List <Task <IRestResponse> >(); var client = new RestClient(DOMAIN); string[] sorts = { "RELEVANCE", "PRICE_LOW", "PRICE_HIGH" }; double[,] array = { { 0, 0 }, { 0.2, 0 }, { 0, 0.2 }, { -0.2, 0 }, { 0, -0.2 } }; for (int i = 0; i < 5; i++) { var loc = location.Add(array[i, 0], array[i, 1]); foreach (var sort in sorts) { var request = new TuroRequest(loc, 400, make, model, sort); restTasks.Add(client.ExecuteTaskAsync(request)); } } var cars = new List <Car>(); foreach (var restTask in restTasks) { var resp = await restTask; dynamic data = JsonConvert.DeserializeObject(resp.Content); foreach (var item in data.list) { long id = (long)item.vehicle.id; if (!cars.Any(x => x.id == id)) { cars.Add(new Car { id = id, make = item.vehicle.make, model = item.vehicle.model, year = (int)item.vehicle.year, tripsTaken = (int)item.renterTripsTaken, dailyPrice = (double)item.rate.averageDailyPrice, createdTime = FromUnixTime((double)item.vehicle.listingCreatedTime) }); } } } return(cars); }