Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }