Ejemplo n.º 1
0
        private async Task UpdateNukiDeviceState(INukiDeviceStateMessage nukiStateCmd)
        {
            var action = new Action(() =>
            {
                if (nukiStateCmd != null)
                {
                    LockState       = nukiStateCmd.LockState;
                    NukiState       = nukiStateCmd.NukiState;
                    CriticalBattery = nukiStateCmd.CriticalBattery;
                }
                else
                {
                    LockState = NukiLockState.Undefined;
                }
                LockRingState = LockState.ToString();
            });

            if (Dispatcher != null)
            {
                await Dispatcher.DispatchAsync(action);
            }
            else
            {
                action();
            }
        }
Ejemplo n.º 2
0
        public async Task <INukiDeviceStateMessage> RequestNukiState()
        {
            INukiDeviceStateMessage retValue = null;

            try
            {
                using (var lockHandle = await Locker.Lock())
                {
                    if (lockHandle.Successfull)
                    {
                        retValue = await m_UGDIO.Send <RecieveNukiStatesCommand>(new SendRequestDataCommand(NukiCommandType.NukiStates));
                    }
                }
            }
            catch (Exception ex)
            {
                Update(new NukiCommandException(NukiCommandType.NukiStates, ex));
            }
            return(retValue);
        }
Ejemplo n.º 3
0
        private async Task RefreshNukiState()
        {
            BaseModel.ShowProgressbar(true);
            LockRingState = "Requsting state...";
            INukiDeviceStateMessage nukiStateCmd = null;

            try
            {
                if (BaseModel?.NukiConncetion?.Connected == true)
                {
                    nukiStateCmd = await BaseModel.NukiConncetion.RequestNukiState();
                }
            }
            catch (Exception ex)
            {
                Log.Error("Failed to request Nuki Stat: {0}", ex);
            }
            await UpdateNukiDeviceState(nukiStateCmd);

            SendUnlatchCommand.RaiseCanExecuteChanged();
            SendLockCommand.RaiseCanExecuteChanged();
            SendUnlockCommand.RaiseCanExecuteChanged();
            BaseModel.ShowProgressbar(false);
        }