예제 #1
0
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            ViewModelStatus status = (ViewModelStatus)value;

            bool?dialogResult = false;

            switch (status)
            {
            case ViewModelStatus.NoChange:
                dialogResult = false;
                break;

            case ViewModelStatus.Running:
                dialogResult = null;
                break;

            case ViewModelStatus.Complete:
                dialogResult = true;
                break;

            default:
                throw IntegrityCheck.FailUnexpectedDefault(status);
            }
            return(dialogResult);
        }
예제 #2
0
 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);
 }
예제 #3
0
 private IDisposable SubscribeToContact()
 {
     return(_profileDashboard.Contact
            .ObserveOn(_schedulerProvider.Dispatcher)
            .Subscribe(c => Contact = c,
                       ex => ContactStatus = ViewModelStatus.Error(ex.Message),
                       () => ContactStatus = ViewModelStatus.Idle));
 }
 private void UpdateSettings()
 {
     Log.Debug("UpdateSettings() called");
     // Update settings
     m_SettingsManager.UpdateSetting(Setting.ApiKey, m_ApiKey.QueryValue);
     m_SettingsManager.UpdateSetting(Setting.RootUrl, m_RootUrl.QueryValue);
     m_SettingsManager.SaveSettings();
     Result = ViewModelStatus.Complete;
 }
예제 #5
0
 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();
     });
 }
예제 #6
0
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            bool?dialogResult = value as bool?;

            ViewModelStatus status = ViewModelStatus.None;

            if (!dialogResult.HasValue)
            {
                status = ViewModelStatus.Running;
            }
            else if (!dialogResult.Value)
            {
                status = ViewModelStatus.NoChange;
            }
            return((status != ViewModelStatus.None) ? status : Binding.DoNothing);
        }
예제 #7
0
 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);
     });
 }
 void ISettingsViewModel.Refresh()
 {
     m_ApiKey  = new SettingCompare(m_SettingsManager.GetCurrentSetting(Setting.ApiKey));
     m_RootUrl = new SettingCompare(m_SettingsManager.GetCurrentSetting(Setting.RootUrl));
     m_Result  = ViewModelStatus.Running;
 }
예제 #9
0
 public static bool IsEncodingOrDecodingPerforming(this ViewModelStatus @this)
 {
     return((@this & (ViewModelStatus.Encoding | ViewModelStatus.Decoding)) != 0);
 }