public static List<ItemSale> FindRelevantClassifeids(List<ItemPricing> pricings)
        {
            List<ItemSale> results = new List<ItemSale>();

            Progress = 0;
            for (int pindex = 0; pindex < pricings.Count; pindex++)
            {
                Progress = (double)pindex / pricings.Count;
                if (OnProgressChanged != null && Progress != 0.0)
                {
                    int pct = Progress.ToPercentInt();
                    OnProgressChanged(null, new ProgressChangedEventArgs(pct, results));
                }

                ItemPricing p = pricings[pindex];
                ItemSale set = new ItemSale(p);

                VersatileIO.Debug("Searching classifieds for {0}...", p.ToUnpricedString());
                List<ClassifiedsListing> buf = ClassifiedsScraper.GetClassifieds(
                    p.Item, p.Quality, p.Craftable, p.Tradable, p.Australium);

                // ignore items with no sellers
                if (!buf.Exists((c) => c.OrderType == OrderType.Sell))
                {
                    continue;
                }

                int i = 0;
                while (i < buf.Count && set.Sellers.Count < 5)
                {
                    if (buf[i].OrderType == OrderType.Buy)
                    {
                        set.Buyers.Add(buf[i]);
                    }
                    else
                    {
                        set.Sellers.Add(buf[i]);
                    }
                    i++;
                }

                results.Add(set);
            }

            return results;
        }
 public SaleViewModel(ItemSale sale)
 {
     Sale = sale;
 }
 public DealExclusionViewModel(ItemSale excluded, string reason)
 {
     Excluded = excluded;
     Reason = reason;
 }