private static void updateDatabase() { while (true) { DateTime before = DateTime.Now; Console.Write("Downloading price data . . . "); Item[] items = downloadItemList().ToArray(); Console.WriteLine("Done."); Console.Write("Updating price database . . . "); using (gw2tpContext database = new gw2tpContext()) { database.Configuration.AutoDetectChangesEnabled = false; database.Configuration.ValidateOnSaveEnabled = false; for(int i = 0; i < items.Length; i++) { insertPriceData(items[i], database); //save database every 1000 entries for performance reasons if (i % 1000 == 0) { database.SaveChanges(); } } } Console.WriteLine("Done."); Thread.Sleep(TimeSpan.FromMinutes(5) - (DateTime.Now - before)); } }
private static void insertPriceData(Item item, gw2tpContext database) { database.pricedatas.Add(new pricedata { apiID = item.ID, buyDemand = item.buyCount, maxBuyPrice = item.maxOffer, minSellPrice = item.minSale, sellSupply = item.saleCount, lastPriceUpdate = item.priceLastChanged, lastPriceCheck = DateTime.Now.ToUniversalTime() }); }
public static void Main() { Item[] items = downloadItemList().ToArray(); using (var database = new gw2tpContext()) { foreach (Item i in items) { insertItemData(i, database); } database.SaveChanges(); } //updateDatabase(); }
private static void insertItemData(Item item, gw2tpContext database) { itemdetail details = new itemdetail { apiID = item.ID, gwID = item.officialID, icon = item.iconURL, level = item.level, name = item.name, rarity = item.rarity, type = item.type, subtype = item.type }; if (!database.itemdetails.Any(x => x.apiID == item.ID)) { database.itemdetails.Add(details); } }