override fun accept()

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)
        }
    }