public async Task FetchHealth(ProducerPOCO pro) { var jsonString = await Fetch.GetAsync(pro.Ip + Resources.ProducingSideChains); var succeeded = bool.Parse(JsonStringNavigator.GetDeeper(jsonString, "succeeded")); if (!succeeded) { pro.Producing = "Unconfigured"; } var response = JsonStringNavigator.GetDeeper <ProducingSidechain[]>(jsonString, "response"); double fractionHealth = 0; if (response.Length == 0) { pro.Health = 0; return; } foreach (var sc in response) { if (sc.TotalBlocksPerSettlement() == 0) { fractionHealth += 1; continue; } fractionHealth += sc.blocksProducedInCurrentSettlement / (sc.TotalBlocksPerSettlement()); } pro.Health = (fractionHealth / response.Length) * 100; }
public async Task FetchProducing(ProducerPOCO pro) { var jsonString = await Fetch.GetAsync(pro.Ip + Resources.ProducingSideChains); var succeeded = bool.Parse(JsonStringNavigator.GetDeeper(jsonString, "succeeded")); if (!succeeded) { pro.Producing = "Unconfigured"; } var response = JsonStringNavigator.GetDeeper <ProducingSidechain[]>(jsonString, "response"); int working = 0; foreach (var sc in response) { if (sc.sidechainState == "Production") { working++; } pro.Warnings = +sc.warnings.Length; } pro.Producing = working + "/" + response.Length; }
public async Task FetchValues(ProducerPOCO pro) { await FetchProducing(pro); await FetchHealth(pro); }