示例#1
0
            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);
            }
示例#2
0
        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;
            });
        }
示例#3
0
 public async Task <bool> TransitionToStateAsync(IMinerState state)
 {
     return(await StateHandler.TransitionToStateAsync(state));
 }