public override async Task <MetricData> GetDataAsync(CancellationToken cancellationToken) { try { var azureDevOpsHelper = new AzureDevOpsHelper(ConfigProvider, RootConfig); var codeCoverageDetails = await azureDevOpsHelper.GetCodeCoverageResultForLastGreenBuildAsync(cancellationToken); if (codeCoverageDetails == null) { return(MetricData.NoUpdate()); } var linesCoverageData = codeCoverageDetails.CoverageData.First().CoverageStats.Single(x => x.Label == "Lines"); var percentageCoverage = Math.Round(100m * linesCoverageData.Covered / linesCoverageData.Total, 1); return(new MetricData(percentageCoverage, MetricType.Percentage, Status.OK)); } catch (Exception ex) { return(MetricData.Error(ex.Message)); } }