public CheckedPrice(ItemPricing pricing)
 {
     Pricing = pricing;
     if (Quality == Quality.Unusual)
     {
         Unusual = DataManager.Schema.GetUnusual(pricing.PriceIndex);
     }
 }
        public ItemSale(ItemPricing pricing)
        {
            Pricing = pricing;

            HasQuickDeal = false;

            Sellers = new List<ClassifiedsListing>();
            Buyers = new List<ClassifiedsListing>();
        }
 public void AddIfTradableNotChemSet(ItemPricing pricing)
 {
     if (!pricing.IsChemistrySet)
     {
         AddIfTradable(pricing);
     }
 }
 public void AddIfTradable(ItemPricing pricing)
 {
     if (pricing.Tradable)
     {
         Add(pricing);
         NotTradable = false;
     }
 }
 public void Add(ItemPricing pricing)
 {
     Add(new CheckedPrice(pricing));
 }
        public bool MatchesPricing(ItemPricing pricing)
        {
            if (pricing.Item == null)
            {
                return false;
            }

            if (Craftable != null && pricing.Craftable != Craftable.Value)
            {
                return false;
            }

            if (Botkiller != null && pricing.Item.IsBotkiller() != Botkiller.Value)
            {
                return false;
            }

            bool isHalloween = (pricing.Item.HalloweenOnly || (pricing.Item.HasHauntedVersion ?? false));
            if (Halloween != null && isHalloween != Halloween.Value)
            {
                return false;
            }

            if (Qualities.HasItems() && !Qualities.Contains(pricing.Quality))
            {
                return false;
            }

            if (Slots.HasItems() && !Slots.Contains(pricing.Item.PlainSlot))
            {
                return false;
            }

            if (!AllowAllClass && Classes.HasItems() && pricing.Item.ValidClasses.IsAllClass())
            {
                return false;
            }

            if (Classes.HasItems() && !Classes.Exists((c) => pricing.Item.ValidClasses.Contains(c)))
            {
                return false;
            }

            return true;
        }