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(); } }
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); }
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); }