Example #1
0
        private static void Main(string[] args)
        {
            XmlConfigurator.Configure();
            var logger        = LogManager.GetLogger("SampleTextLogger");
            var loggerService = new LoggerService(logger);

            IUserInput input = new ConsoleUserInput(ConsoleKey.Escape);

            using (var dbContext = new MyDbContext("Data Source=.;Initial Catalog=StockExchangeDB;Integrated Security=True"))
            {
                var bussinesService = new BussinesService(dbContext);

                Database.SetInitializer(new EfInitializer(bussinesService));

                var stockExchange = new SimpleStockExchange(bussinesService);

                loggerService.RunWithExceptionLogging(() =>
                {
                    bussinesService.RegisterNewStockToClient("NoNameCompany", bussinesService.GetAllClients().GetRandom());
                }, isSilent: true);

                loggerService.Warning("Changing any stock's cost.");
                bussinesService.ChangeStockCost("Telegram", bussinesService.GetStockCost("Telegram") + 100);

                loggerService.Warning("All registered clients:\n");
                foreach (var client in bussinesService.GetAllClients())
                {
                    loggerService.Info(client.ToString());
                }

                input.OnUserInputRecieved += (sender, keyInfo) => { if (keyInfo == ConsoleKey.Q)
                                                                    {
                                                                        stockExchange.IsContinue = false;
                                                                    }
                };

                loggerService.Warning("Opening the stock exchange.");
                loggerService.RunWithExceptionLogging(() => {
                    Task.Run(() =>
                    {
                        stockExchange.Run((IDealInfo dealInfo) => { loggerService.Info($"{dealInfo.Seller} have sold {dealInfo.Stock} to  {dealInfo.Buyer} for {dealInfo.Amount}."); });
                    });
                }, isSilent: false);

                input.ListenToUser();
            }
        }
Example #2
0
        protected override void Seed(MyDbContext context)
        {
            _bussinesService.RegisterNewClient("TestClientName1", "TestClientSurname1", "TestClientPhone1", 500);
            _bussinesService.RegisterNewClient("TestClientName2", "TestClientSurname2", "TestClientPhone2", 700);
            _bussinesService.RegisterNewClient("TestClientName3", "TestClientSurname3", "TestClientPhone3", 900);
            _bussinesService.RegisterNewClient("TestClientName4", "TestClientSurname4", "TestClientPhone4", 1100);
            _bussinesService.RegisterNewClient("TestClientName5", "TestClientSurname5", "TestClientPhone5", 1300);
            _bussinesService.RegisterNewClient("TestClientName6", "TestClientSurname6", "TestClientPhone6", 1500);
            _bussinesService.RegisterNewClient("TestClientName7", "TestClientSurname7", "TestClientPhone7", 0);
            _bussinesService.RegisterNewClient("TestClientName8", "TestClientSurname8", "TestClientPhone8", 1700);
            _bussinesService.RegisterNewClient("TestClientName9", "TestClientSurname9", "TestClientPhone9", 1900);

            _bussinesService.RegisterNewStockType("TestStockType1", 100);
            _bussinesService.RegisterNewStockType("TestStockType2", 200);
            _bussinesService.RegisterNewStockType("TestStockType3", 300);
            _bussinesService.RegisterNewStockType("TestStockType4", 400);

            _bussinesService.RegisterNewStockToClient("TestStockType4", _bussinesService.GetAllClients().GetRandom());
            _bussinesService.RegisterNewStockToClient("TestStockType3", _bussinesService.GetAllClients().GetRandom());
            _bussinesService.RegisterNewStockToClient("TestStockType2", _bussinesService.GetAllClients().GetRandom());
            _bussinesService.RegisterNewStockToClient("TestStockType1", _bussinesService.GetAllClients().GetRandom());

            context.SaveChanges();
        }
        protected override IDealInfo MakeDeal()
        {
            var sellers      = _bussinesService.GetAllStockOwners();
            var seller       = sellers.GetRandom();
            var stockForSale = seller.Stocks.Where(stock => stock.IsForSale).GetRandom();
            var cost         = stockForSale.Type.Cost;
            var buyer        = _bussinesService.GetAllClients().Where(client => client.Id != seller.Id).GetRandom();

            this._bussinesService.RegisterNewDeal(seller, buyer, stockForSale, cost);
            var dealInfo = new DealInfo()
            {
                Amount = cost, Stock = stockForSale.Type.Name, Buyer = $"{buyer.Name} {buyer.Surname}", Seller = $"{seller.Name} {seller.Surname}"
            };

            OnDealConcluded?.Invoke(this, dealInfo);
            return(dealInfo);
        }
Example #4
0
        protected override void Seed(MyDbContext context)
        {
            bussinesService.RegisterNewClient("Ilya", "Muromec", "12345", 1000);
            bussinesService.RegisterNewClient("Elena", "Prekrasnaya", "111", 800);
            bussinesService.RegisterNewClient("Ivan", "Durak", "", 200);
            bussinesService.RegisterNewClient("Vasilisa", "Premudraya", "555", 0);
            bussinesService.RegisterNewClient("Koshey", "Bessmertniy", "666", 3000);

            bussinesService.RegisterNewStockType("Lukoil", 200);
            bussinesService.RegisterNewStockType("Gazprom", 400);
            bussinesService.RegisterNewStockType("Telegram", 400);

            bussinesService.RegisterNewStockToClient("Lukoil", bussinesService.GetAllClients().GetRandom());
            bussinesService.RegisterNewStockToClient("Lukoil", bussinesService.GetAllClients().GetRandom());
            bussinesService.RegisterNewStockToClient("Gazprom", bussinesService.GetAllClients().GetRandom());
            bussinesService.RegisterNewStockToClient("Gazprom", bussinesService.GetAllClients().GetRandom());
            bussinesService.RegisterNewStockToClient("Telegram", bussinesService.GetAllClients().GetRandom());
            bussinesService.RegisterNewStockToClient("Telegram", bussinesService.GetAllClients().GetRandom());

            context.SaveChanges();
        }