private void ObserveChanges()
 {
     RequestQuote = new DelegateCommand(
         _ => _router.PublishEvent(new RequestQuoteEvent()),
         _ => Notional.HasValue && CurrencyPair.HasValue && _status != QuoteStatus.Quoting
         );
     AcceptQuoteCommand = new DelegateCommand(
         _ => _router.PublishEvent(new AcceptQuoteEvent(_quoteId)),
         _ => _status == QuoteStatus.Quoting
         );
     RejectQuoteCommand = new DelegateCommand(
         _ => _router.PublishEvent(new RejectQuoteEvent(_quoteId)),
         _ => _status == QuoteStatus.Quoting
         );
     Notional
     .ObserveProperty(q => q.Value)
     .Where(_ => !_entryMonitor.IsBusy)
     .Subscribe(quantity => _router.PublishEvent(new NotionalChangedEvent(quantity)));
     CurrencyPair
     .ObserveProperty(q => q.Value)
     .Where(_ => !_entryMonitor.IsBusy)
     .Subscribe(symbol => _router.PublishEvent(new CurrencyPairChangedEvent(symbol)));
 }