From 03f66f85cb84366d9650265dd9159fa8bfb5d16e Mon Sep 17 00:00:00 2001 From: Andrew Rublyov Date: Sun, 5 Dec 2021 05:13:50 +0200 Subject: [PATCH] Fix #24, additional checks for non-supported projects --- src/dotnet/Plugin.props | 4 ++-- .../efcore/dialogs/BaseEfCoreDialogWrapper.kt | 23 +++++++++++++------ src/rider/main/resources/META-INF/plugin.xml | 2 +- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/dotnet/Plugin.props b/src/dotnet/Plugin.props index f44b39ef..f323993e 100644 --- a/src/dotnet/Plugin.props +++ b/src/dotnet/Plugin.props @@ -6,8 +6,8 @@ Entity Framework Core JetBrains Rider plugin for Entity Framework Core - seclerp - Copyright $([System.DateTime]::Now.Year) seclerp + Andrew Rublyov + Copyright $([System.DateTime]::Now.Year) Andrew Rublyov resharper plugin diff --git a/src/rider/main/kotlin/me/seclerp/rider/plugins/efcore/dialogs/BaseEfCoreDialogWrapper.kt b/src/rider/main/kotlin/me/seclerp/rider/plugins/efcore/dialogs/BaseEfCoreDialogWrapper.kt index 8d71ac20..8c568c5b 100644 --- a/src/rider/main/kotlin/me/seclerp/rider/plugins/efcore/dialogs/BaseEfCoreDialogWrapper.kt +++ b/src/rider/main/kotlin/me/seclerp/rider/plugins/efcore/dialogs/BaseEfCoreDialogWrapper.kt @@ -47,8 +47,8 @@ abstract class BaseEfCoreDialogWrapper( private val migrationsProjects: Array private val startupProjects: Array - private val dotnetProjectName: String - private val dotnetProjectId: UUID + private val dotnetProjectName: String? + private val dotnetProjectId: UUID? @Suppress("MemberVisibilityCanBePrivate") protected val migrationsProjectChangedEvent: Event = Event() @@ -83,10 +83,10 @@ abstract class BaseEfCoreDialogWrapper( .toTypedArray() val dotnetProject = migrationsProjects.find { it.displayName == actionDotnetProjectName } - ?: migrationsProjects.first() + ?: migrationsProjects.firstOrNull() - dotnetProjectName = dotnetProject.displayName - dotnetProjectId = dotnetProject.data.id + dotnetProjectName = dotnetProject?.displayName + dotnetProjectId = dotnetProject?.data?.id migrationsProjectChangedEvent += ::migrationsProjectChanged startupProjectChangedEvent += ::startupProjectChanged @@ -217,6 +217,11 @@ abstract class BaseEfCoreDialogWrapper( } private fun loadPreferredProjects() { + if (dotnetProjectId == null || dotnetProjectName == null) { + setDefaultProjects() + return + } + val preferredProjects = CommonOptionsStateService.getInstance(intellijProject).getPreferredProjectPair(dotnetProjectId) if (preferredProjects != null) { val (migrationsProjectId, startupProjectId) = preferredProjects @@ -228,11 +233,15 @@ abstract class BaseEfCoreDialogWrapper( migrationsProjectSetter(migrationsProject) startupProjectSetter(startupProject) } else { - migrationsProjectSetter(migrationsProjects.find { it.displayName == dotnetProjectName } ?: migrationsProjects.firstOrNull()) - startupProjectSetter(startupProjects.find { it.displayName == dotnetProjectName } ?: startupProjects.firstOrNull()) + setDefaultProjects() } } + private fun setDefaultProjects() { + migrationsProjectSetter(migrationsProjects.find { it.displayName == dotnetProjectName } ?: migrationsProjects.firstOrNull()) + startupProjectSetter(startupProjects.find { it.displayName == dotnetProjectName } ?: startupProjects.firstOrNull()) + } + private fun migrationsProjectValidation(): ValidationInfoBuilder.(ComboBox) -> ValidationInfo? = { if (migrationsProject == null) error("You should selected valid migrations project") diff --git a/src/rider/main/resources/META-INF/plugin.xml b/src/rider/main/resources/META-INF/plugin.xml index 5b2cba1b..afab9d6f 100644 --- a/src/rider/main/resources/META-INF/plugin.xml +++ b/src/rider/main/resources/META-INF/plugin.xml @@ -2,7 +2,7 @@ me.seclerp.rider.plugins.efcore Entity Framework Core UI 1.0.0 - seclerp + Andrew Rublyov com.intellij.modules.rider