in plugin-dotnet-server/src/main/kotlin/jetbrains/buildServer/DotnetUsageStatisticsProvider.kt [29:57]
override fun accept(publisher: UsageStatisticsPublisher, presentationManager: UsageStatisticsPresentationManager) {
val statistics = _server
.getProjectManager()
.getActiveBuildTypes()
.map { it.resolvedSettings.buildRunners }
.flatten()
.groupBy { it.type }
.map {
when (it.key) {
DotnetConstants.RUNNER_TYPE -> it.value.toDotnetStat()
NUnitRunnerConstants.NUNIT_RUN_TYPE -> it.value.toStat { NUnitToolDesc }
"MSBuild" -> it.value.toMSBuildStat()
"VS.Solution" -> it.value.toVSStat()
"VisualStudioTest" -> it.value.toVSTestStat()
"jb.nuget.installer" -> it.value.toStat { NugetInstallerToolDesc }
"jb.nuget.publish" -> it.value.toStat { NugetPublishToolDesc }
"jb.nuget.pack" -> it.value.toStat { NugetPackToolDesc }
else -> emptyList()
}
}
.flatten()
val formatter = PercentageFormatter(statistics.filter { !it.descriptor.isAdditionalCase }.sumOf { it.count })
for (stat in statistics) {
publisher.publishStatistic(stat.descriptor.id, stat.count)
presentationManager.applyPresentation(stat.descriptor.id, stat.descriptor.description, myGroupName, formatter, null)
}
}