Пример #1
0
        /// <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());
        }