public void Run() { _ActiveBarrierOptionsByContract = GetActiveBarrierOptionsByContract(); var client = new FuturesQuoteClient(); client.Quotes += OnQuote; }
public void Run() { _ActiveBarrierOptionsByContract = GetActiveBarrierOptionsByContract(); var client = new FuturesQuoteClient(); FuturesQuotesSource(client) .Select(q => new QuoteWithContract(q)) .Where(IsValidContract) .SelectMany(BarrierBreachNotices) .Where(NoticeNotAlreadySent) .Subscribe(NotifyTheHumans); }
private static IObservable <FuturesQuote> FuturesQuotesSource(FuturesQuoteClient client) { return(Observable .FromEvent <FuturesQuoteClient.QuoteHandler, FuturesQuote>(h => client.Quotes += h, h => client.Quotes -= h)); }
private static IObservable <FuturesQuote> FuturesQuotesSource(FuturesQuoteClient client) { // this is equivalent to FuturesQuoteClientWrapper, the reactive framework abstracts events for you :) return(Observable .FromEvent <FuturesQuoteClient.QuoteHandler, FuturesQuote>(h => client.Quotes += h, h => client.Quotes -= h)); }
public AntiCorruptionLayerObservableClient(FuturesQuoteClient client) : this(FuturesQuotesSource(client)) { }