static void Main(string[] args) { using (var dbContext = new StockExchangeDbContext()) { XmlConfigurator.Configure(); var logger = LogManager.GetLogger("StockExchangeLogger"); var loggerService = new LoggerService(logger); var businessService = new BusinessService(dbContext, loggerService); var dealProducer = new DealProducer(businessService, loggerService); Database.SetInitializer(new EfInitializer(businessService)); var clients = businessService.GetClients(); foreach (var client in clients) { businessService.ShowClient(client); } Console.WriteLine("\nClients in orange area:"); var orangeClients = businessService.GetClientsFromOrangeArea(); foreach (var client in orangeClients) { businessService.ShowClient(client); } businessService.ChangeStockType(dbContext.Stocks.First(c => c.Id == 1), "Tesla"); Console.WriteLine("\nDeals will be produced soon. Press Enter to stop producing"); System.Threading.Thread.Sleep(7000); Task.Factory.StartNew(() => { dealProducer.Run(); }); Console.ReadLine(); dealProducer.IsContinue = false; Console.WriteLine("\nDeals producing stopped. Updated clients table:"); foreach (var client in clients) { businessService.ShowClient(client); } Console.ReadLine(); } }
public void Run() { Random rnd = new Random(); IsContinue = true; Console.WriteLine("Clients from database:"); var clients = businessService.GetClients(); foreach (var client in clients) { businessService.ShowClient(client); } Console.WriteLine("Clients from orange area:"); var orangeClients = businessService.GetClientsFromOrangeArea(); foreach (var client in orangeClients) { businessService.ShowClient(client); } var stock1 = businessService.GetStockById(1); businessService.ChangeStockType(stock1, "Tesla"); Console.WriteLine("\nDeals will be produced soon. Press Enter to stop producing"); System.Threading.Thread.Sleep(7000); while (IsContinue & businessService.GetClientsAmount() > 1) { var clientsAmount = businessService.GetClientsAmount(); var seller = businessService.GetRandomClient(); var purchaser = businessService.GetRandomClient(); while (seller == purchaser) { purchaser = businessService.GetRandomClient(); } loggerService.Info($"\n{seller.Name} {seller.Surname} is trying to sell a stock to {purchaser.Name} {purchaser.Surname}..."); System.Threading.Thread.Sleep(1000); if (seller.Stocks.Count == 0) { loggerService.Error(new ArgumentNullException($"{seller.Name} {seller.Surname} doesn't have stocks")); System.Threading.Thread.Sleep(10000); continue; } var stock = businessService.GetRandomSellerStock(seller); var producedDeal = businessService.MakeDeal(seller, purchaser, stock); businessService.RegisterNewDeal(producedDeal); loggerService.Info($"\n{seller.Name} {seller.Surname} selled stock \"{stock.Type}\"" + $" №{stock.Id} to {purchaser.Name} {purchaser.Surname} for {stock.Cost}"); System.Threading.Thread.Sleep(10000); } Console.WriteLine("\nUpdated clients table:"); foreach (var client in clients) { businessService.ShowClient(client); } }
public void CanChangeStockType() { businessService.ChangeStockType(stock, "Tesla"); Assert.AreEqual(stock.Type, "Tesla"); }