Beispiel #1
0
        public GroupViewModel(Group group, BridgeViewModel bridge, IDelegateCommandFactory commandFactory, IMessageHandler messageHandler) : base(group)
        {
            _messageHandler = messageHandler;
            _bridge         = bridge;
            _lights         = new ObservableCollection <GroupLightViewModel>();
            bridge.Lights.CollectionChanged += BridgeLightsOnCollectionChanged;
            _groupLightIDs = LightSourceModel.Lights.Dictionary.Keys.ToList();
            InitialiseGroupViewModel();

            SaveCommand   = commandFactory.CreateCommand(ExecuteSaveAsync, CanExecuteSave);
            CancelCommand = commandFactory.CreateCommand(ExecuteCancel, CanExecuteCancel);
        }
Beispiel #2
0
        public SceneViewModel(Scene scene, BridgeViewModel bridgeViewModel, IDelegateCommandFactory commandFactory)
        {
            _scene           = scene;
            _bridgeViewModel = bridgeViewModel;
            _bridgeViewModel.Lights.CollectionChanged += LightsOnCollectionChanged;
            _bridgeViewModel.Groups.CollectionChanged += GroupsOnCollectionChanged;
            _connection = bridgeViewModel.Context;

            SaveCommand   = commandFactory.CreateCommand(ExecuteSave, CanExecuteSave);
            CancelCommand = commandFactory.CreateCommand(ExecuteCancel, CanExecuteCancel);

            InitialiseSceneViewModel();
        }
Beispiel #3
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();
        }