Exemple #1
0
        public static void Main(string[] args)
        {
            HotKeyHandler hotKeyHandler = new HotKeyHandler();

            SearchConfig searchConfig;
            SearchConfig defaultSearchConfig = new SearchConfig(
                    ConfigurationManager.AppSettings["Type"],
                    ConfigurationManager.AppSettings["Rarity"],
                    ConfigurationManager.AppSettings["Minimum Level"],
                    ConfigurationManager.AppSettings["Maximum Level"],
                    ConfigurationManager.AppSettings["Minimum Profit Margin"],
                    ConfigurationManager.AppSettings["Copper Value"]);
            string type, rarity, minLevel, maxLevel, minProfitMargin, copperValue;

            Console.WriteLine("Gathering search data:");
            Console.Write("  Type [{0}]: ",
                    (defaultSearchConfig.Types.Count == 0 ? "*" : string.Join(",", defaultSearchConfig.Types)));
            type = Console.ReadLine();
            Console.Write("  Rarity [{0}]: ",
                    (defaultSearchConfig.Rarities.Count == 0 ? "*" : string.Join(",", defaultSearchConfig.Rarities)));
            rarity = Console.ReadLine();
            Console.Write("  Minimum Level [{0}]: ", defaultSearchConfig.MinimumLevel);
            minLevel = Console.ReadLine();
            Console.Write("  Maximum Level [{0}]: ", defaultSearchConfig.MaximumLevel);
            maxLevel = Console.ReadLine();
            Console.Write("  Minimum Profit Margin [{0}]: ",
                    (defaultSearchConfig.MarginIsPercent ?
                            defaultSearchConfig.MinimumProfitMargin + "%" :
                            defaultSearchConfig.MinimumProfitMargin.ToString("#### ## #0").Trim()));
            minProfitMargin = Console.ReadLine().Replace(" ", string.Empty);
            Console.Write("  Copper Value [{0}]: ", defaultSearchConfig.CopperValue);
            copperValue = Console.ReadLine();

            searchConfig = new SearchConfig(type, rarity, minLevel, maxLevel, minProfitMargin, copperValue, defaultSearchConfig);

            // load overlay handler
            OverlayHandler.Initialize();

            Console.WriteLine("Pulling prospects for the following data:");
            Console.WriteLine("  Type: {0}",
                    (searchConfig.Types.Count == 0 ? "*" : string.Join(",", searchConfig.Types)));
            Console.WriteLine("  Rarity: {0}",
                    (searchConfig.Rarities.Count == 0 ? "*" : string.Join(",", searchConfig.Rarities)));
            Console.WriteLine("  Minimum Level: {0}", searchConfig.MinimumLevel);
            Console.WriteLine("  Maximum Level: {0}", searchConfig.MaximumLevel);
            Console.WriteLine("  Minimum Profit Margin: {0}",
                    (searchConfig.MarginIsPercent ?
                            searchConfig.MinimumProfitMargin + "%" :
                            searchConfig.MinimumProfitMargin.ToString("#### ## #0").Trim()));
            Console.WriteLine("  Copper Value: {0}", searchConfig.CopperValue);
            Console.WriteLine("  Order by: Buy price, ascending");

            Console.Write("Grabbing prospects: ");
            IList<ItemInfo> prospects = new List<ItemInfo>();

            try
            {
                prospects = fetchProspects(searchConfig);
                ok();
            }
            catch (Exception)
            {
                error();
                Console.WriteLine("  There was a problem communicating with Gw2Spidy. The website may be offline.");
            }

            if (prospects.Count > 0)
            {
                Console.WriteLine("Found {0} prospects. Press any key to view the next result (Esc to exit):", prospects.Count);
                Console.WriteLine("{0} {1,-10} {2,-10} [{3,-10}] {4}", " ", "Sell", "Buy", "Margin", "Name");

                hotKeyHandler.CopperValue = searchConfig.CopperValue;
                hotKeyHandler.RegisterHotKeys();

                foreach (ItemInfo item in prospects)
                {
                    Console.WriteLine(string.Format("{0} {1,10} {2,10} [{3,10}] {4}",
                            ((searchConfig.CopperValue == (int)(item.BuyPrice % 100) || searchConfig.CopperValue == (int)(item.SellPrice)) ? "*" : " "),
                            item.SellPrice.ToString("#### ## #0").Trim(),
                            item.BuyPrice.ToString("#### ## #0").Trim(),
                            item.ProfitMargin.ToString("#### ## #0").Trim(),
                            item.Name));

                    hotKeyHandler.CurrentItem = item;

                    // load item into overlay
                    OverlayHandler.LoadItem(
                            item,
                            (searchConfig.CopperValue == (int)(item.BuyPrice % 100) ? 1 :
                            (searchConfig.CopperValue == (int)(item.SellPrice % 100) ? 3  : 0)));

                    SpinWait.SpinUntil(() => Console.KeyAvailable || hotKeyHandler.CurrentItem == null);

                    if (Console.KeyAvailable)
                    {
                        ConsoleKeyInfo key = Console.ReadKey(true);
                        if (key.Key == ConsoleKey.Escape)
                            break;
                    }
                }

                hotKeyHandler.UnregisterHotKeys();
            }
            else
            {
                Console.WriteLine("Found 0 prospects. Press any key to exit.");
                Console.ReadKey(true);
            }
        }
Exemple #2
0
        public static void Main(string[] args)
        {
            HotKeyHandler hotKeyHandler = new HotKeyHandler();

            SearchConfig searchConfig;
            SearchConfig defaultSearchConfig = new SearchConfig(
                ConfigurationManager.AppSettings["Type"],
                ConfigurationManager.AppSettings["Rarity"],
                ConfigurationManager.AppSettings["Minimum Level"],
                ConfigurationManager.AppSettings["Maximum Level"],
                ConfigurationManager.AppSettings["Minimum Profit Margin"],
                ConfigurationManager.AppSettings["Copper Value"]);
            string type, rarity, minLevel, maxLevel, minProfitMargin, copperValue;

            Console.WriteLine("Gathering search data:");
            Console.Write("  Type [{0}]: ",
                          (defaultSearchConfig.Types.Count == 0 ? "*" : string.Join(",", defaultSearchConfig.Types)));
            type = Console.ReadLine();
            Console.Write("  Rarity [{0}]: ",
                          (defaultSearchConfig.Rarities.Count == 0 ? "*" : string.Join(",", defaultSearchConfig.Rarities)));
            rarity = Console.ReadLine();
            Console.Write("  Minimum Level [{0}]: ", defaultSearchConfig.MinimumLevel);
            minLevel = Console.ReadLine();
            Console.Write("  Maximum Level [{0}]: ", defaultSearchConfig.MaximumLevel);
            maxLevel = Console.ReadLine();
            Console.Write("  Minimum Profit Margin [{0}]: ",
                          (defaultSearchConfig.MarginIsPercent ?
                           defaultSearchConfig.MinimumProfitMargin + "%" :
                           defaultSearchConfig.MinimumProfitMargin.ToString("#### ## #0").Trim()));
            minProfitMargin = Console.ReadLine().Replace(" ", string.Empty);
            Console.Write("  Copper Value [{0}]: ", defaultSearchConfig.CopperValue);
            copperValue = Console.ReadLine();

            searchConfig = new SearchConfig(type, rarity, minLevel, maxLevel, minProfitMargin, copperValue, defaultSearchConfig);

            // load overlay handler
            OverlayHandler.Initialize();

            Console.WriteLine("Pulling prospects for the following data:");
            Console.WriteLine("  Type: {0}",
                              (searchConfig.Types.Count == 0 ? "*" : string.Join(",", searchConfig.Types)));
            Console.WriteLine("  Rarity: {0}",
                              (searchConfig.Rarities.Count == 0 ? "*" : string.Join(",", searchConfig.Rarities)));
            Console.WriteLine("  Minimum Level: {0}", searchConfig.MinimumLevel);
            Console.WriteLine("  Maximum Level: {0}", searchConfig.MaximumLevel);
            Console.WriteLine("  Minimum Profit Margin: {0}",
                              (searchConfig.MarginIsPercent ?
                               searchConfig.MinimumProfitMargin + "%" :
                               searchConfig.MinimumProfitMargin.ToString("#### ## #0").Trim()));
            Console.WriteLine("  Copper Value: {0}", searchConfig.CopperValue);
            Console.WriteLine("  Order by: Buy price, ascending");

            Console.Write("Grabbing prospects: ");
            IList <ItemInfo> prospects = new List <ItemInfo>();

            try
            {
                prospects = fetchProspects(searchConfig);
                ok();
            }
            catch (Exception)
            {
                error();
                Console.WriteLine("  There was a problem communicating with Gw2Spidy. The website may be offline.");
            }

            if (prospects.Count > 0)
            {
                Console.WriteLine("Found {0} prospects. Press any key to view the next result (Esc to exit):", prospects.Count);
                Console.WriteLine("{0} {1,-10} {2,-10} [{3,-10}] {4}", " ", "Sell", "Buy", "Margin", "Name");

                hotKeyHandler.CopperValue = searchConfig.CopperValue;
                hotKeyHandler.RegisterHotKeys();

                foreach (ItemInfo item in prospects)
                {
                    Console.WriteLine(string.Format("{0} {1,10} {2,10} [{3,10}] {4}",
                                                    ((searchConfig.CopperValue == (int)(item.BuyPrice % 100) || searchConfig.CopperValue == (int)(item.SellPrice)) ? "*" : " "),
                                                    item.SellPrice.ToString("#### ## #0").Trim(),
                                                    item.BuyPrice.ToString("#### ## #0").Trim(),
                                                    item.ProfitMargin.ToString("#### ## #0").Trim(),
                                                    item.Name));

                    hotKeyHandler.CurrentItem = item;

                    // load item into overlay
                    OverlayHandler.LoadItem(
                        item,
                        (searchConfig.CopperValue == (int)(item.BuyPrice % 100) ? 1 :
                         (searchConfig.CopperValue == (int)(item.SellPrice % 100) ? 3  : 0)));

                    SpinWait.SpinUntil(() => Console.KeyAvailable || hotKeyHandler.CurrentItem == null);

                    if (Console.KeyAvailable)
                    {
                        ConsoleKeyInfo key = Console.ReadKey(true);
                        if (key.Key == ConsoleKey.Escape)
                        {
                            break;
                        }
                    }
                }

                hotKeyHandler.UnregisterHotKeys();
            }
            else
            {
                Console.WriteLine("Found 0 prospects. Press any key to exit.");
                Console.ReadKey(true);
            }
        }