示例#1
0
        private void ExecuteSave()
        {
            _isSavingSettings = true;
            SaveCommand.RaiseCanExecuteChanged();
            RaisePropertyChanged("CanSave");

            _settings.Bridge = _selectedBridge.IPAddress;
            _settings.Save();
            if (!_selectedBridge.IsConnected)
            {
                _selectedBridge.ConnectAsync().ContinueWith(o => RaisePropertyChanged("SelectedBridge"));
            }
            _isSavingSettings = false;
            SaveCommand.RaiseCanExecuteChanged();
            RaisePropertyChanged("CanSave");
            RaisePropertyChanged("IsConnected");
        }
示例#2
0
        private async void SetAlertAsync()
        {
            _isSettingAlert = true;
            SetAlertCommand.RaiseCanExecuteChanged();

            HueObjectBase rv = await LightSourceModel.SetAlertAsync();

            if (!rv.IsError())
            {
                bool refreshed = await LightSourceModel.RefreshAttributesAsync();

                if (refreshed)
                {
                    IsAlerting = LightSourceModel.State.Alert != "none";
                }
            }

            _isSettingAlert = false;
            SetAlertCommand.RaiseCanExecuteChanged();
        }
示例#3
0
        private async void ExecuteGetGroupsAsync()
        {
            _isGettingGroups = true;
            GetGroupsCommand.RaiseCanExecuteChanged();

            var rv = await _bridge.GetGroupsFullAsync();

            Groups.Clear();

            if (!rv.IsError())
            {
                foreach (Group group in ((HueObjectCollectionBase <Group>)rv).Dictionary.Values)
                {
                    Groups.Add(new GroupViewModel(group, this, _commandFactory, _messageHandler));
                }
            }
            else
            {
                await _messageHandler.GetResponseAsync("Error", "No Groups Found", MessageBoxButtons.OK);
            }

            _isGettingLights = false;
            GetGroupsCommand.RaiseCanExecuteChanged();
        }
示例#4
0
        private async void ExecuteGetLightsAsync()
        {
            _isGettingLights = true;
            GetLightsCommand.RaiseCanExecuteChanged();

            var rv = await _bridge.GetLightsFullAsync();

            Lights.Clear();

            if (!rv.IsError())
            {
                foreach (Light light in (from l in ((HueObjectCollectionBase <Light>)rv).Dictionary.Values orderby l.Name select l))
                {
                    Lights.Add(new LightViewModel(light, _commandFactory));
                }
            }
            else
            {
                await _messageHandler.GetResponseAsync("Error", "No Lights Found", MessageBoxButtons.OK);
            }

            _isGettingLights = false;
            GetLightsCommand.RaiseCanExecuteChanged();
        }
示例#5
0
        private void CheckCanMovePage()
        {
            var canMoveToPreviousPage = this.pagedSource.CanMoveToPreviousPage;
            var canMoveToNextPage     = this.pagedSource.CanMoveToNextPage;

            if (canMoveToPreviousPage != oldCanMoveToPreviousPage)
            {
                moveToFirstPageCommand?.RaiseCanExecuteChanged();
                moveToPreviousPageCommand?.RaiseCanExecuteChanged();
                this.oldCanMoveToPreviousPage = canMoveToPreviousPage;
            }
            if (canMoveToNextPage != oldCanMoveToNextPage)
            {
                moveToNextPageCommand?.RaiseCanExecuteChanged();
                moveToLastPageCommand?.RaiseCanExecuteChanged();
                this.oldCanMoveToNextPage = canMoveToNextPage;
            }
        }