44 lines
1.5 KiB
C#
44 lines
1.5 KiB
C#
|
using System;
|
||
|
using System.Collections;
|
||
|
using System.Collections.Generic;
|
||
|
using System.Net.Http;
|
||
|
using Newtonsoft.Json.Linq;
|
||
|
using Props.Shop.Framework;
|
||
|
|
||
|
namespace Props.Shop.Adafruit.Api
|
||
|
{
|
||
|
public class ListingsParser
|
||
|
{
|
||
|
public IEnumerable<ProductListing> ProductListings { get; private set; }
|
||
|
public ListingsParser(string json)
|
||
|
{
|
||
|
dynamic data = JArray.Parse(json);
|
||
|
List<ProductListing> parsed = new List<ProductListing>();
|
||
|
foreach (dynamic item in data)
|
||
|
{
|
||
|
if (item.products_discontinued == 0)
|
||
|
{
|
||
|
ProductListing res = new ProductListing();
|
||
|
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);
|
||
|
}
|
||
|
}
|
||
|
ProductListings = parsed;
|
||
|
}
|
||
|
}
|
||
|
}
|