Esempio n. 1
0
        private static void PublishUpdateStocks(StockSubject stockSubject)
        {
            stockSubject.UpdateStockValue(new Stock {
                Name = "AAPL", Value = 3
            });
            stockSubject.UpdateStockValue(new Stock {
                Name = "AAPL", Value = 4
            });
            stockSubject.UpdateStockValue(new Stock {
                Name = "AAPL", Value = 5
            });
            stockSubject.UpdateStockValue(new Stock {
                Name = "AAPL", Value = 6
            });

            stockSubject.UpdateStockValue(new Stock {
                Name = "FTSE", Value = 6
            });
            stockSubject.UpdateStockValue(new Stock {
                Name = "FTSE", Value = 12
            });
            stockSubject.UpdateStockValue(new Stock {
                Name = "FTSE", Value = 2
            });
            stockSubject.UpdateStockValue(new Stock {
                Name = "FTSE", Value = 3
            });
        }
Esempio n. 2
0
        public void RunSimple()
        {
            StockSubject stockSubject = new StockSubject();

            LondonStockObserver londonObserver = new LondonStockObserver(stockSubject);

            AaplObserver aaplObserver = new AaplObserver(stockSubject);

            PublishUpdateStocks(stockSubject);
        }
Esempio n. 3
0
        public void RunReactiveWithEvents()
        {
            StockSubject stockSubject = new StockSubject();

            IObservable <EventPattern <StockUpdateEventArgs> > londonObservable = Observable.FromEventPattern <StockUpdateEventArgs>(
                ev => stockSubject.StockUpdated += ev,
                ev => stockSubject.StockUpdated -= ev).Where(s => s.EventArgs.Stock.Name == "FTSE");

            IObservable <EventPattern <StockUpdateEventArgs> > aaplObservable = Observable.FromEventPattern <StockUpdateEventArgs>(
                ev => stockSubject.StockUpdated += ev,
                ev => stockSubject.StockUpdated -= ev).Where(s => s.EventArgs.Stock.Name == "AAPL");

            using (londonObservable.Subscribe(PrintLondonStockPriceUpdate))
                using (aaplObservable.Subscribe(PrintAaplStockPriceUpdate))
                {
                    PublishUpdateStocks(stockSubject);
                }
        }
 public AaplObserver(StockSubject stockObservable)
 {
     stockObservable.StockUpdated += (obj, e) => PrintNewValue(e.Stock);
 }
 public LondonStockObserver(StockSubject stockObservable)
 {
     stockObservable.StockUpdated += (obj, e) => PrintStockValue(e.Stock);
 }