public NearToMarketViewer(INearToMarketService nearToMarketService, ISchedulerProvider schedulerProvider)
 {
     _cleanUp = nearToMarketService.Query(() => NearToMarketPercent) 
         .Transform(trade => new TradeProxy(trade))
         .Sort(SortExpressionComparer<TradeProxy>.Descending(t => t.Timestamp))
         .ObserveOn(schedulerProvider.MainThread)
         .Bind(_data)  
         .DisposeMany() 
         .Subscribe();
 }
        public TradesByPercentViewer(INearToMarketService nearToMarketService, ISchedulerProvider schedulerProvider)
        {
            _schedulerProvider = schedulerProvider;

            var groupController = new GroupController();

            var grouperRefresher = Observable.Interval(TimeSpan.FromSeconds(1))
                .Subscribe(_ => groupController.RefreshGroup());

            var loader = nearToMarketService.Query(() => 6)
                .Group(trade => (int)Math.Truncate(Math.Abs(trade.PercentFromMarket)), groupController)
                .Transform(group => new Domain.Model.TradesByPercentDiff(group, _schedulerProvider))
                .Sort(SortExpressionComparer<Domain.Model.TradesByPercentDiff>.Ascending(t => t.PercentBand),SortOptimisations.ComparesImmutableValuesOnly)
                .ObserveOn(_schedulerProvider.Dispatcher)
                .Bind(_data)
                .DisposeMany()
                .Subscribe();
            ;
            _cleanUp = new CompositeDisposable(loader, grouperRefresher);
        }
Beispiel #3
0
        public TradesByPercentViewer(INearToMarketService nearToMarketService, ISchedulerProvider schedulerProvider)
        {
            _schedulerProvider = schedulerProvider;

            var groupController = new GroupController();

            var grouperRefresher = Observable.Interval(TimeSpan.FromSeconds(1))
                                   .Subscribe(_ => groupController.RefreshGroup());

            var loader = nearToMarketService.Query(() => 6)
                         .Group(trade => (int)Math.Truncate(Math.Abs(trade.PercentFromMarket)), groupController)
                         .Transform(group => new Domain.Model.TradesByPercentDiff(group, _schedulerProvider))
                         .Sort(SortExpressionComparer <Domain.Model.TradesByPercentDiff> .Ascending(t => t.PercentBand), SortOptimisations.ComparesImmutableValuesOnly)
                         .ObserveOn(_schedulerProvider.Dispatcher)
                         .Bind(_data)
                         .DisposeMany()
                         .Subscribe();

            ;
            _cleanUp = new CompositeDisposable(loader, grouperRefresher);
        }
        public NearToMarketViewer(ILogger logger, INearToMarketService nearToMarketService)
        {
            _logger = logger;

            var filterApplier = this.ObserveChanges()
                                .Sample(TimeSpan.FromMilliseconds(250))
                                .Subscribe(_ => ApplyFilter());



            ApplyFilter();

            var loader = nearToMarketService.Query(() => NearToMarketPercent)
                         .Filter(_filter)
                         .Transform(trade => new TradeProxy(trade))
                         .Sort(SortExpressionComparer <TradeProxy> .Descending(t => t.Timestamp))
                         .ObserveOnDispatcher()
                         .Bind(_data)
                         .DisposeMany()
                         .Subscribe();

            _cleanUp = new CompositeDisposable(loader, _filter, filterApplier);
        }
        public NearToMarketViewer(ILogger logger, INearToMarketService nearToMarketService)
        {
            _logger = logger;

            var filterApplier = this.ObserveChanges()
                .Sample(TimeSpan.FromMilliseconds(250))
                .Subscribe(_ => ApplyFilter());


             
            ApplyFilter();

            var loader = nearToMarketService.Query(() => NearToMarketPercent) 
                .Filter(_filter) 
                .Transform(trade => new TradeProxy(trade))
                .Sort(SortExpressionComparer<TradeProxy>.Descending(t => t.Timestamp))
                .ObserveOnDispatcher()
                .Bind(_data)  
                .DisposeMany() 
                .Subscribe();

            _cleanUp = new CompositeDisposable(loader, _filter, filterApplier);
        }