public virtual async Task <bool> TransitionToStateAsync(IMinerState state) { if (state == null) { throw new ArgumentNullException(nameof(state)); } if (state.Equals(_miner.CurrentState)) { return(false); } var originalState = _miner.CurrentState; await state.EnterStateAsync(_miner); if (_miner.CurrentState.Equals(state)) { Notify(); return(true); } if (!_miner.CurrentState.Equals(originalState)) { //not sure about this. we could potentially want to transition to a different state than the one //requested. if state does change, we should notify. Notify(); } return(false); }
private Func <bool> AddEventHandler(TrexMiner.MinerStateHandler handler, IMinerState desiredNotificationState) { var result = false; handler.MiningInformationChanged += (o, e) => { result = e.Value.Equals(desiredNotificationState.StateName); }; return(() => { return result; }); }
public async Task <bool> TransitionToStateAsync(IMinerState state) { return(await StateHandler.TransitionToStateAsync(state)); }