public override CommandResult Execute(string parameter) { logger.Trace("ServiceCommand executes with parameter: " + parameter); minerConfig = MinerConfig.GetInstance(); serviceProvider = ComposeServiceProvider(minerConfig.InstanceType); serviceInstanceId = minerConfig.InstanceId; logger.Trace($"InstanceType: {minerConfig.InstanceType}. InstanceId: {serviceInstanceId}"); string operationName = parameter; switch (operationName) { case "start": return(Start()); case "stop": return(Stop()); case "install": return(Install()); case "uninstall": return(Uninstall()); case "detect": return(Detect()); default: throw new TargetExecutionException(DaemonErrorCode.COMMAND_PARAM_ERROR, "Unknown operation type for service: " + operationName); } }
public EthMinerService() { InitializeComponent(); minerConfig = MinerConfig.GetInstance(); namedPipeServerTask = new Task(() => { NamedPipeServerMain(); }); }
public override CommandResult Execute(string parameter) { try { ServiceProvider serviceProvider = ComposeServiceProvider(MinerConfig.GetInstance().InstanceType); int instanceId = MinerConfig.GetInstance().InstanceId; serviceInstance = serviceProvider.AquaireInstance(instanceId); ReportOutput outputResult = new ReportOutput(); outputResult.Status = ReportOutput.StatusEnum.Unknown; if (!serviceInstance.IsServiceExist()) { outputResult.Status = ReportOutput.StatusEnum.NotInstalled; } else if (!serviceInstance.IsServiceRunning()) { outputResult.Status = ReportOutput.StatusEnum.Stopped; } else { // Retrieve the miner status from NamedPipe QueryServiceStatusByNamedPipe(outputResult); } return(CommandResult.CreateResult(outputResult)); } catch (TargetExecutionException ex) { throw ex; } catch (Exception ex) { throw new TargetExecutionException(DaemonErrorCode.UNKNOWN_ERROR, ex); } }