public double GetCurrentHashrate(DeviceConfig deviceConfig) { double gpuHashrate = 0; try { var json = GetApiDataAsync(_port, "{\"id\":0,\"jsonrpc\":\"2.0\",\"method\":\"miner_getstat1\"}\n").Result; var jResults = JToken.Parse(json)["result"].Value <JArray>(); string hashrates = jResults[3].Value <string>(); if (hashrates.Contains(";", StringComparison.OrdinalIgnoreCase)) { string[] splitHashrates = hashrates.Split(';'); int index = DeviceConfigs.OrderBy(dc => dc.DeviceId).ToList().IndexOf(deviceConfig); double hashrateInKh = double.Parse(splitHashrates[index], NumberStyles.None, CultureInfo.InvariantCulture); return(hashrateInKh * 1000); } else { double hashrateInKh = double.Parse(hashrates, NumberStyles.None, CultureInfo.InvariantCulture); return(hashrateInKh * 1000); } } catch (Exception ex) { Log.Debug("Couldn't get current hashrate: " + ex.Message); } return(gpuHashrate); }