public RootViewModel(IClientFactory clientFactory, IEventAggregator aggregator) { this.clientFactory = clientFactory; this.securityPickerClientFactory = new SecurityPickerClientFactory(clientFactory); var securityPickerViewModel = new SecurityPickerViewModel( new OnlyErrorCommunicationState(this), this.securityPickerClientFactory ); this.SecurityPickerViewModel = securityPickerViewModel; securityPickerViewModel.SecurityPicked += (s, e) => { this.CompositionViewModel.AddSecurity(e.Security); this.SecurityPickerViewModel.Clear(); }; this.CompositionViewModel = new CompositionViewModel(clientFactory, aggregator); this.compositionViewModel.CommunicationStateChanged += this.WhenCommunicationStateChanges; this.HistoryViewModel = new HistoryViewModel(clientFactory, aggregator); this.historyViewModel.CommunicationStateChanged += this.WhenCommunicationStateChanges; aggregator.GetEvent <SecurityPickedGlobalEvent>().Subscribe(this.TakeSecurity); }
public RootViewModel(Settings settings) { var clientFactory = settings.ClientFactory; var pickerViewModel = new PortfolioPickerViewModel(clientFactory); pickerViewModel.CommunicationStateChanged += this.WhenCommunicationStateChanges; this.PortfolioPickerViewModel = pickerViewModel; var editorViewModel = new EditorViewModel(clientFactory); editorViewModel.CommunicationStateChanged += this.WhenCommunicationStateChanges; this.EditorViewModel = editorViewModel; var securityPickerViewModel = new SecurityPickerViewModel( new OnlyErrorCommunicationState(this), new SecurityPickerClientFactory(settings.ClientFactory) ); this.SecurityPickerViewModel = securityPickerViewModel; pickerViewModel.Picked += (s, e) => { e.IsCancelled = !this.ConsiderReloading(e.BottomUpPortfolio.Id); }; pickerViewModel.Reseting += (s, e) => { e.IsCancelled = !this.ConsiderReseting(); }; securityPickerViewModel.SecurityPicked += (s, e) => { this.EditorViewModel.AddSecurity(e.Security); this.SecurityPickerViewModel.Clear(); }; editorViewModel.GotData += (s, e) => this.ReactOnDataBeingGotten(); this.SaveCommand = new DelegateCommand(this.Save, this.CanSave); }