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); } }
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); } }