// 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(); }
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; }