public DashboardCollection(IObservable <T> inputSequence) { _roItems = new ReadOnlyObservableCollection <T>(_items); _subscription = inputSequence.Subscribe( i => _items.Add(i), ex => Status = ViewModelStatus.Error(ex.Message), () => Status = ViewModelStatus.Idle); }
private IDisposable SubscribeToContact() { return(_profileDashboard.Contact .ObserveOn(_schedulerProvider.Dispatcher) .Subscribe(c => Contact = c, ex => ContactStatus = ViewModelStatus.Error(ex.Message), () => ContactStatus = ViewModelStatus.Idle)); }
public BluetoothSetupViewModel(IBluetoothService bluetoothService, IBluetoothProfileActivator bluetoothProfileActivator, ISchedulerProvider schedulerProvider) { _bluetoothService = bluetoothService; _bluetoothProfileActivator = bluetoothProfileActivator; _schedulerProvider = schedulerProvider; _roDevices = new ReadOnlyObservableCollection <IBluetoothDevice>(_devices); _scanForDevicesCommand = new DelegateCommand(ScanForDevices, CanScanForDevices); _status = ViewModelStatus.Error(Resources.Bluetooth_NoDevices_RequiresScan); _bluetoothProfileActivator.PropertyChanges(bs => bs.IsEnabled) .Subscribe(_ => { OnPropertyChanged("IsEnabled"); _scanForDevicesCommand.RaiseCanExecuteChanged(); }); }
private void ScanForDevices() { _devices.Clear(); Status = ViewModelStatus.Processing; _bluetoothService.ScanForDevices() .SubscribeOn(_schedulerProvider.Concurrent) .ObserveOn(_schedulerProvider.Dispatcher) .Subscribe( device => _devices.Add(device), ex => { Status = ViewModelStatus.Error(ex.Message); }, () => { Status = _devices.Any() ? ViewModelStatus.Idle : ViewModelStatus.Error(Resources.Bluetooth_NoDevicesFound); }); }