fun getValues()

in plugin-dotnet-server/src/main/kotlin/jetbrains/buildServer/dotnet/fetchers/DotnetTargetsFetcher.kt [24:58]


    fun getValues(streamFactory: StreamFactory, paths: Sequence<String>): Sequence<String> {
        val projects = _solutionDiscover
                .discover(streamFactory, paths)
                .asSequence()
                .flatMap { it.projects.asSequence() }
                .toList()

        val projectTypes = projects
                .flatMap { _projectTypeSelector.select(it) }
                .toSet()

        var discoveredTargets = projects
                .flatMap { it.targets }
                .map { it.name }
                .filter { it.isNotBlank() }
                .map { if(it.contains(' ')) "\"$it\"" else it }

        val targets = mutableListOf<String>()
        if (projectTypes.contains(ProjectType.Test)) {
            targets.addAll(TestTargets)
            discoveredTargets = exclude(discoveredTargets, TestTargets)
        }

        if (projectTypes.contains(ProjectType.Publish)) {
            targets.addAll(PublishTargets)
            discoveredTargets = exclude(discoveredTargets, PublishTargets)
        }

        return InitialDefaultTargets
                .asSequence()
                .plus(discoveredTargets)
                .plus(targets)
                .plus(FinishDefaultTargets)
                .distinctBy { it.lowercase() }
    }