public ModeratorResultStatus Execute(RestartApiMiner message) { try { using (var stream = ConnectApiMiner().ConfigureAwait(false).GetAwaiter().GetResult()) { SendApiCommand(stream, MinerRequest.RebootMiner(_config.Password)).ConfigureAwait(false).GetAwaiter().GetResult(); } return(ModeratorResultStatus.Ok); } catch (FarmException ex) { return(ModeratorResultStatus.FromException(ex)); } }
public ModeratorResultStatus Execute(CardChangeStatus message) { try { using (var stream = ConnectApiMiner().ConfigureAwait(false).GetAwaiter().GetResult()) { SendApiCommand(stream, MinerRequest.ControlCard(_config.Password, (GPUCommand)message.State, message.IdCard)).ConfigureAwait(false).GetAwaiter().GetResult(); } return(ModeratorResultStatus.Ok); } catch (FarmException ex) { return(ModeratorResultStatus.FromException(ex)); } }
public async Task ListenStatisticsMiner() { var messageBus = _messageCommunicationFactory.Create(); var stream = await ConnectApiMiner(); if (stream == null) { messageBus.Handle(new MinerApiStatus { Avaible = false }); return; } do { using (var networkStream = await ConnectApiMiner()) { try { await SendApiCommand(networkStream, MinerRequest.GetStatistics(_config.Password)); var result = await ReadApiResponce(networkStream); var resultData = ParseResult(result?.result); if (resultData != null) { messageBus.Handle(resultData); OutConsoleData(resultData); } } catch (Exception ex) { _logger.Error(ex); messageBus.Handle(new MinerApiStatus { Avaible = false }); return; } } await Task.Delay(_config.IntervalCheck); } while (!_token.IsCancellationRequested); }