public void RunCommand(CommandHandler sender, List<string> args)
        {
            DealsFilters filters = new DealsFilters();

            string steamid = Settings.Instance.HomeSteamID64;

            foreach (string s in args)
            {
                if (!s.StartsWith("/"))
                {
                    steamid = s;
                    continue;
                }

                filters.HandleArg(s);
            }

            List<ItemSale> sales = DealFinder.FindDeals(steamid, filters);
            if (sales == null)
            {
                // already logged
                return;
            }

            sales.Sort((a, b) => a.Profit.TotalRefined.CompareTo(b.Profit.TotalRefined));

            VersatileIO.WriteLine();
            VersatileIO.Info("{0} deals found:", sales.Count);

            foreach (ItemSale s in sales)
            {
                VersatileIO.WriteComplex("  " + s.ToComplexString());
            }
        }
        public void RunCommand(CommandHandler sender, List<string> args)
        {
            if (args.Count < 2)
            {
                VersatileIO.Error("Syntax: " + Syntax);
                return;
            }

            Price min, max;
            if (!Price.TryParse(args[0], out min))
            {
                VersatileIO.Error("Invalid price: " + args[0]);
                return;
            }
            if (!Price.TryParse(args[1], out max))
            {
                VersatileIO.Error("Invalid price: " + args[1]);
            }
            PriceRange range = new PriceRange(min, max);

            DealsFilters filters = new DealsFilters();
            for (int i = 2; i < args.Count; i++)
            {
                filters.HandleArg(args[i]);
            }

            VersatileIO.Debug("Searching pricings...");
            List<ItemPricing> res = GetInRange(range, filters);
            foreach (ItemPricing p in res)
            {
                VersatileIO.WriteComplex("  " + p.Quality.GetColorCode() + p.ToUnpricedString() +
                    "&7 for " + p.GetPriceString());
            }

            VersatileIO.Info("{0} pricings matching filters [{1}].", res.Count, filters.ToString());
        }