override fun registerHandlers()

in PluginsAndFeatures/azure-toolkit-for-rider/azure-intellij-plugin-cosmos-dotnet/src/main/kotlin/com/microsoft/azure/toolkit/intellij/cosmos/IntellijDotnetCosmosActionsContributor.kt [29:104]


    override fun registerHandlers(am: AzureActionManager) {
        val mongoFunction = { account: MongoCosmosDBAccount ->
            account.mongoDatabases().list().stream().findFirst().orElse(null)
        }
        am.registerHandler(
            ResourceCommonActionsContributor.CONNECT,
            { r, e -> r is MongoCosmosDBAccount && r.formalStatus.isConnected }
        ) { r, e: AnActionEvent ->
            openResourceConnector(
                r as MongoCosmosDBAccount,
                mongoFunction,
                MongoCosmosDBAccountResourceDefinition.INSTANCE,
                e.project
            )
        }
        am.registerHandler(
            ResourceCommonActionsContributor.CONNECT,
            { r, e -> r is MongoDatabase && r.formalStatus.isConnected }
        ) { r, e: AnActionEvent ->
            openResourceConnector(
                r as MongoDatabase,
                MongoCosmosDBAccountResourceDefinition.INSTANCE,
                e.project
            )
        }

        val sqlFunction = { account: SqlCosmosDBAccount ->
            account.sqlDatabases().list().stream().findFirst().orElse(null)
        }
        am.registerHandler(
            ResourceCommonActionsContributor.CONNECT,
            { r, e -> r is SqlCosmosDBAccount && r.formalStatus.isConnected }
        ) { r, e: AnActionEvent ->
            openResourceConnector(
                r as SqlCosmosDBAccount,
                sqlFunction,
                SqlCosmosDBAccountResourceDefinition.INSTANCE,
                e.project
            )
        }
        am.registerHandler(
            ResourceCommonActionsContributor.CONNECT,
            { r, e -> r is SqlDatabase && r.formalStatus.isConnected }
        ) { r, e: AnActionEvent ->
            openResourceConnector(
                r as SqlDatabase,
                SqlCosmosDBAccountResourceDefinition.INSTANCE,
                e.project
            )
        }

        val cassandraFunction = { account: CassandraCosmosDBAccount ->
            account.keySpaces().list().stream().findFirst().orElse(null)
        }
        am.registerHandler(
            ResourceCommonActionsContributor.CONNECT,
            { r, e -> r is CassandraCosmosDBAccount && r.formalStatus.isConnected }
        ) { r, e: AnActionEvent ->
            openResourceConnector(
                r as CassandraCosmosDBAccount,
                cassandraFunction,
                CassandraCosmosDBAccountResourceDefinition.INSTANCE,
                e.project
            )
        }
        am.registerHandler(
            ResourceCommonActionsContributor.CONNECT,
            { r, e -> r is CassandraKeyspace && r.formalStatus.isConnected }
        ) { r, e: AnActionEvent ->
            openResourceConnector(
                r as CassandraKeyspace,
                CassandraCosmosDBAccountResourceDefinition.INSTANCE,
                e.project
            )
        }
    }