using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Net.Http; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Props.Shop.Framework; namespace Props.Shop.Adafruit.Api { public class ProductListingsParser { public IEnumerable ProductListings { get; private set; } public void BuildProductListings(Stream stream) { using (StreamReader streamReader = new StreamReader(stream)) { DateTime startTime = DateTime.UtcNow; dynamic data = JArray.Load(new JsonTextReader(streamReader)); List parsed = new List(); foreach (dynamic item in data) { if (item.products_discontinued == 0) { ProductListing res = new ProductListing(); res.TimeFetchedUtc = startTime; res.Name = item.product_name; res.LowerPrice = item.product_price; res.UpperPrice = res.LowerPrice; foreach (dynamic discount in item.discount_pricing) { if (discount.discounted_price < res.LowerPrice) { res.LowerPrice = discount.discounted_price; } if (discount.discounted_price > res.UpperPrice) { res.UpperPrice = discount.discounted_price; } } res.URL = item.product_url; res.InStock = item.product_stock > 0; parsed.Add(res); res.Identifier = res.URL; } } ProductListings = parsed; } } } }