From d47175df8af856cfbc7745333c062870d6af8e40 Mon Sep 17 00:00:00 2001 From: sbwalker Date: Mon, 28 Aug 2023 15:20:09 -0400 Subject: [PATCH] improve solution related to module installation issue where ModuleDefinition Version property was not being populated correctly (#3175) --- .../Repository/ModuleDefinitionRepository.cs | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/Oqtane.Server/Repository/ModuleDefinitionRepository.cs b/Oqtane.Server/Repository/ModuleDefinitionRepository.cs index 69df211f..1607b811 100644 --- a/Oqtane.Server/Repository/ModuleDefinitionRepository.cs +++ b/Oqtane.Server/Repository/ModuleDefinitionRepository.cs @@ -138,14 +138,21 @@ namespace Oqtane.Repository // sync module assemblies with database foreach (ModuleDefinition ModuleDefinition in ModuleDefinitions) { + // manage releaseversions in cases where it was not provided or is lower than the module version + if (string.IsNullOrEmpty(ModuleDefinition.ReleaseVersions) || (!string.IsNullOrEmpty(ModuleDefinition.Version) && Version.Parse(ModuleDefinition.Version).CompareTo(Version.Parse(ModuleDefinition.ReleaseVersions.Split(',').Last())) > 0)) + { + ModuleDefinition.ReleaseVersions = ModuleDefinition.Version; + } + ModuleDefinition moduledefinition = moduledefinitions.Where(item => item.ModuleDefinitionName == ModuleDefinition.ModuleDefinitionName).FirstOrDefault(); + if (moduledefinition == null) { - // new module definition - moduledefinition = new ModuleDefinition { ModuleDefinitionName = ModuleDefinition.ModuleDefinitionName, Version = ModuleDefinition.Version }; + // new module definition (version is explicitly not set because it is updated as part of module migrations at startup) + moduledefinition = new ModuleDefinition { ModuleDefinitionName = ModuleDefinition.ModuleDefinitionName }; _db.ModuleDefinition.Add(moduledefinition); _db.SaveChanges(); - ModuleDefinition.Version = ""; // ensure migrations are executed during startup for new module installations + ModuleDefinition.Version = ""; } else { @@ -158,12 +165,6 @@ namespace Oqtane.Repository moduledefinitions.Remove(moduledefinition); } - // manage releaseversions in cases where it was not provided or is lower than the module version - if (string.IsNullOrEmpty(ModuleDefinition.ReleaseVersions) || (!string.IsNullOrEmpty(ModuleDefinition.Version) && Version.Parse(ModuleDefinition.Version).CompareTo(Version.Parse(ModuleDefinition.ReleaseVersions.Split(',').Last())) > 0)) - { - ModuleDefinition.ReleaseVersions = ModuleDefinition.Version; - } - // load db properties ModuleDefinition.ModuleDefinitionId = moduledefinition.ModuleDefinitionId; ModuleDefinition.CreatedBy = moduledefinition.CreatedBy;