Example #1
0
        // https://stackoverflow.com/a/10276293
        // Выполнение некоторых операций по старту
        private void Application_Startup(object sender, StartupEventArgs e)
        {
            AutofacConfig.ConfigureContainer();
            IBank bank = Injector.Get <IBank>();
            IEnumerable <IndividualUser> users     = Injector.Get <IIndividualUserFabric>().GetEntities(30);
            IEnumerable <Company>        companies = CreateCompanies();

            Injector.Get <IExchangeUserStorage>()
            .Save(users.Cast <ExchangeUserBase>()
                  .Concat(companies
                          .Select(company => (ExchangeUserBase)company.GetExchangeUser())));

            IPOExchangeInstitution ipoExchangeInstitution = CreateExchange(users, companies);

            MainWindow mainWindow = new MainWindow(ipoExchangeInstitution);

            mainWindow.Show();
        }
Example #2
0
        private IPOExchangeInstitution CreateExchange(IEnumerable <IndividualUser> users, IEnumerable <Company> companies)
        {
            IBank bank = Injector.Get <IBank>();

            var exchangeUsers = new List <IExchangeUser>();

            exchangeUsers.AddRange(users);
            exchangeUsers.AddRange(companies.Select(company => company.GetExchangeUser()));

            foreach (IExchangeUser exchangeUser in exchangeUsers)
            {
                bank.CreateAccount(exchangeUser);
            }
            // Банк как участник биржи
            exchangeUsers.Add(bank.GetExchangeUser());
            Injector.Get <IExchangeUserStorage>().Save((ExchangeUserBase)bank.GetExchangeUser());

            var exchange = new IPOExchangeInstitution(bank, exchangeUsers, companies);

            return(exchange);
        }
        public MainWindow(IPOExchangeInstitution ipoExchangeInstitution)
        {
            _ipoExchangeInstitution = ipoExchangeInstitution;

            _bank = Injector.Get <IBank>();
            _bank.SetChainChangeListener(this);

            _chainStorage       = Injector.Get <IChainStorage>();
            _transactionStorage = Injector.Get <ITransactionStorage>();

            InitializeComponent();
            FillExchangeUsersList();
            FillBaseData();
            FillCompanies();

            _exchangeTimer = new DispatcherTimer
            {
                Interval = TimeSpan.FromMilliseconds(300)
            };
            _exchangeTimer.Tick += _exchangeTimer_Tick;

            _ipoExchangeInstitution.ExchangeStepExecuted += IpoExchangeInstitutionOnExchangeStepExecuted;
        }