fun getProjectPair()

in src/rider/main/kotlin/com/jetbrains/rider/plugins/efcore/features/shared/services/PreferredProjectsManager.kt [20:45]


    fun getProjectPair(preferredProjectId: UUID?, migrationsProjects: Collection<MigrationsProjectInfo>,
                       startupProjects: Collection<StartupProjectInfo>): Pair<MigrationsProjectInfo?, StartupProjectInfo?> {

        if (preferredProjectId == null) {
            return getDefaultProjects(null, migrationsProjects, startupProjects)
        }

        val preferredProjects =
            commonOptionsStateService.getPreferredProjectIdsPair(preferredProjectId)

        if (preferredProjects != null) {
            val (migrationsProjectId, startupProjectId) = preferredProjects
            prevPreferredMigrationsProjectId = migrationsProjectId
            prevPreferredStartupProjectId = startupProjectId

            val migrationsProject =
                migrationsProjects.find { it.id == migrationsProjectId } ?: migrationsProjects.firstOrNull()

            val startupProject =
                startupProjects.find { it.id == startupProjectId } ?: startupProjects.firstOrNull()

            return Pair(migrationsProject, startupProject)
        }

        return getDefaultProjects(preferredProjectId, migrationsProjects, startupProjects)
    }