/// <summary> /// get pickup availabilty from apple.com /// </summary> /// <param name="zipCode"></param> /// <param name="carriers"></param> /// <param name="products"></param> /// <returns></returns> private async Task <Availability[]> fetchAsync(int zipCode, Carrier[] carriers, Product[] products) { List <Availability> list = new List <Availability>(); string[] part_numbers = Array.ConvertAll(products, p => p.partNumber); foreach (var carrier in carriers) { string url = getUrl(zipCode, carrier.id, part_numbers); using (HttpClient client = new HttpClient()) { string text = await client.GetStringAsync(url); var json = JsonConvert.DeserializeObject <JToken>(text); list.AddRange(Availability.fromJson(json, carrier, products)); } } return(list.ToArray()); }