Ejemplo n.º 1
0
        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();
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        public void CanChangeStockType()
        {
            businessService.ChangeStockType(stock, "Tesla");

            Assert.AreEqual(stock.Type, "Tesla");
        }