Пример #1
0
        protected async void ExecuteScanBridgesAsync()
        {
            IsScanningBridges = true;
            ScanBridgesCommand.RaiseCanExecuteChanged();

            var rv = await _bridgeFinder.GetBridgesAsync(_connection);

            Bridges.Clear();
            _firstBridgeViewModel = null;
            if (!rv.IsError())
            {
                foreach (Bridge bridge in ((HueObjectCollectionBase <Bridge>)rv).Dictionary.Values)
                {
                    SettingsInitialiser.InitialiseScenes(_settings, bridge);
                    var bridgeViewModel = new BridgeViewModel(bridge, _settings, _commandFactory, _messageHandler);

                    if (_firstBridgeViewModel == null)
                    {
                        _firstBridgeViewModel = new ConnectedBridgeViewModel(bridge, _settings, _commandFactory, _messageHandler);
                        RaisePropertyChanged("FirstBridge");
                    }

                    Bridges.Add(bridgeViewModel);

                    if (_settings.Bridge.Value != null && _settings.Bridge.Value == bridge.InternalIPAddress)
                    {
                        SelectedBridge = bridgeViewModel;
                        //SelectedBridge.ConnectAsync().ContinueWith(o => RaisePropertyChanged("SelectedBridge"));
                    }
                }
            }
            else
            {
                Bridges = new ObservableCollection <BridgeViewModel>();
            }

            IsScanningBridges = false;
            ScanBridgesCommand.RaiseCanExecuteChanged();
        }
 public HueDesktopAppViewModel() : base(SettingsInitialiser.Initialise("Hue.UI.Desktop", LocalSettings.Default), new DelegateCommandFactory(), MessageHandlerViewModel.Instance)
 {
 }