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