public void RefreshAuctions() { SQLTransaction trans = new SQLTransaction(); // Delete completed auctions foreach (var pair in _auctions) { if (!pair.Value.IsCompleted()) { continue; } pair.Value.DeleteFromDB(trans); _auctions.Remove(pair.Key); } DB.Characters.CommitTransaction(trans); trans = new SQLTransaction(); List <BlackMarketTemplate> templates = new List <BlackMarketTemplate>(); foreach (var pair in _templates) { if (GetAuctionByID(pair.Value.MarketID) != null) { continue; } if (!RandomHelper.randChance(pair.Value.Chance)) { continue; } templates.Add(pair.Value); } templates.RandomResize(WorldConfig.GetUIntValue(WorldCfg.BlackmarketMaxAuctions)); foreach (BlackMarketTemplate templat in templates) { BlackMarketEntry entry = new BlackMarketEntry(); entry.Initialize(templat.MarketID, (uint)templat.Duration); entry.SaveToDB(trans); AddAuction(entry); } DB.Characters.CommitTransaction(trans); Update(true); }