Ejemplo n.º 1
0
        public TotalSummaryViewModel(IScreen hostScreen, ITotalSummaryService fundSummaryService, ITotalSummaryService equitySummaryService, ITotalSummaryService bondSummaryService)
        {
            var myList = new SourceList <SummaryTemplateViewModel>();

            myList.Add(new SummaryTemplateViewModel("Equity", equitySummaryService));
            myList.Add(new SummaryTemplateViewModel("Bond", bondSummaryService));
            myList.Add(new SummaryTemplateViewModel("Fund", fundSummaryService));

            Observable.ObserveOn(myList.Connect(), RxApp.MainThreadScheduler).Bind(out _data).DisposeMany().Subscribe();

            HostScreen = hostScreen;
        }
Ejemplo n.º 2
0
        public SummaryTemplateViewModel(string summaryName, ITotalSummaryService servie)
        {
            Title = summaryName;

            _totalNumber = servie.WhenAny(x => x.TotalNumber, change => change.Value)
                           .ToProperty(this, modelView => modelView.TotalNumber);

            _totalMarketValue = servie.WhenAny(x => x.TotalMarketValue, change => change.Value)
                                .ToProperty(this, modelView => modelView.TotalMarketValue);

            _totalStockWeight = servie.WhenAny(x => x.TotalStockWeight, change => change.Value)
                                .ToProperty(this, modelView => modelView.TotalStockWeight);
        }
        public StockListViewModel(IScreen hostScreen, IStockService service, ITotalSummaryService summaryService)
        {
            Observable.ObserveOn(
                service.All.Connect()
                .Transform(stock => new StockProxy(stock)
            {
                TotalMarketValue = summaryService.TotalMarketValue
            }),
                RxApp.MainThreadScheduler).Bind(out _data).DisposeMany().Subscribe();

            Observable.ObserveOn(summaryService.ObservableForProperty(x => x.TotalMarketValue), RxApp.MainThreadScheduler).Subscribe(x =>
            {
                foreach (var stockProxy in Data)
                {
                    stockProxy.TotalMarketValue = x.Value;
                }
            });

            HostScreen = hostScreen;
        }