Exemple #1
0
        private static void Main()
        {
            Logger.InitLogger();
            using (var db = new StockExchangeDataContext("DBConnection"))
            {
                var bs = new BusinessService(db);

                db.Status = Status.GetStatusInstance();

                var gen = new RandomTransactionGenerator(bs);

                Console.CancelKeyPress += (sender, args) =>
                {
                    gen.Active  = false;
                    args.Cancel = true;
                };

                gen.Generate();

                bs.GetAllClients().ShowAll(Traider.Header);
                bs.GetBlackZoneTraiders().ShowAll(Traider.Header);
                bs.GetOrangeZoneTraiders().ShowAll(Traider.Header);
                bs.GetAllOperations().ShowAll(Operation.Header);
            }
            Console.WriteLine("\nСорян за такое завершение :(");
            Console.ReadLine();
        }
Exemple #2
0
        public static void ClearData(this StockExchangeDataContext dataContext)
        {
            dataContext.Clients.RemoveRange(dataContext.Clients);
            dataContext.Stocks.RemoveRange(dataContext.Stocks);
            dataContext.Transactions.RemoveRange(dataContext.Transactions);

            dataContext.SaveChanges();
        }
Exemple #3
0
        static void Main(string[] args)
        {
            XmlConfigurator.Configure();
            var logger        = LogManager.GetLogger("Logger");
            var loggerService = new LoggerService(logger);

            var transactionInspectors = new List <Func <Transaction, bool> >
            {
                (t) => t != null,
                (t) => t.Seller != null && t.Buyer != null,
                (t) => t.Seller.Id != t.Buyer.Id,
                (t) => t.StocksQuantity >= 0,
                //(t) => t.Buyer.Balance >=0,
                (t) => (t.StocksQuantity <= t.Seller.ClientStocksQuantity)
            };

            var transactionValidators = new List <TransactionValidator>();

            transactionInspectors.ForEach(i => transactionValidators.Add(new TransactionValidator(i)));

            using (var dataContext = new StockExchangeDataContext())//$"data source=(LocalDb)\\MSSQLLocalDB;initial catalog=StockExchangeCDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"))
            {
                using (IContainer container = IoCBuilder.Build(transactionValidators, loggerService, dataContext))
                {
                    var app = container.Resolve <TradeManager>();

                    bool isContinue = true;

                    Console.WriteLine("Press any key for start trading\nPress C for stop trading");

                    Console.ReadKey();

                    Task.Run(() =>
                    {
                        app.Run();
                    });

                    while (true)
                    {
                        if (Console.ReadKey().Key == ConsoleKey.C)
                        {
                            app.IsContinue = false;
                            break;
                        }
                    }

                    dataContext.SaveChanges();

                    app.ShowResults(Console.WriteLine);
                }
            }
        }
Exemple #4
0
        public static IContainer Build(
            IEnumerable <ITransactionValidator> transactionValidators,
            ILoggerService loggerService,
            StockExchangeDataContext dataContext
            )
        {
            //var clients = new ClientService();
            var builder = new ContainerBuilder();

            builder.RegisterInstance(loggerService).As <ILoggerService>();
            builder.RegisterInstance(dataContext).As <IRepositoryClient>();
            builder.RegisterInstance(dataContext).As <IRepositoryStock>();
            builder.RegisterInstance(dataContext).As <IRepositoryTransaction>();
            builder.RegisterInstance(transactionValidators).As <IEnumerable <ITransactionValidator> >();

            builder.RegisterType <ClientService>().As <IClientService>().SingleInstance();
            builder.RegisterType <StockService>().As <IStockService>();
            builder.RegisterType <TransactionService>().As <ITransactionService>();
            builder.RegisterType <TransactionGenerator>().As <ITransactionGenerator>().SingleInstance();
            builder.RegisterType <TradeManager>();
            return(builder.Build());
        }