Fix issue where module definition version was not being loaded correctly on startup. Also user customizable module definition properties were being overwritten on upgrade.
This commit is contained in:
		| @ -6,8 +6,9 @@ namespace Oqtane.Repository | ||||
|     public interface IModuleDefinitionRepository | ||||
|     { | ||||
|         IEnumerable<ModuleDefinition> GetModuleDefinitions(); | ||||
|         IEnumerable<ModuleDefinition> GetModuleDefinitions(int sideId); | ||||
|         ModuleDefinition GetModuleDefinition(int moduleDefinitionId, int sideId); | ||||
|         IEnumerable<ModuleDefinition> GetModuleDefinitions(int siteId); | ||||
|         ModuleDefinition GetModuleDefinition(int moduleDefinitionId, int siteId); | ||||
|         ModuleDefinition GetModuleDefinition(int moduleDefinitionId, bool tracking); | ||||
|         void UpdateModuleDefinition(ModuleDefinition moduleDefinition); | ||||
|         void DeleteModuleDefinition(int moduleDefinitionId); | ||||
|     } | ||||
|  | ||||
| @ -42,6 +42,24 @@ namespace Oqtane.Repository | ||||
|             return moduledefinitions.Find(item => item.ModuleDefinitionId == moduleDefinitionId); | ||||
|         } | ||||
|  | ||||
|         public ModuleDefinition GetModuleDefinition(int moduleDefinitionId, bool tracking) | ||||
|         { | ||||
|             ModuleDefinition moduledefinition; | ||||
|             if (tracking) | ||||
|             { | ||||
|                 moduledefinition = _db.ModuleDefinition.Find(moduleDefinitionId); | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 moduledefinition = _db.ModuleDefinition.AsNoTracking().FirstOrDefault(item => item.ModuleDefinitionId == moduleDefinitionId); | ||||
|             } | ||||
|             if (moduledefinition != null) | ||||
|             { | ||||
|                 moduledefinition.Permissions = _permissions.GetPermissionString(EntityNames.ModuleDefinition, moduledefinition.ModuleDefinitionId); | ||||
|             } | ||||
|             return moduledefinition; | ||||
|         } | ||||
|  | ||||
|         public void UpdateModuleDefinition(ModuleDefinition moduleDefinition) | ||||
|         { | ||||
|             _db.Entry(moduleDefinition).State = EntityState.Modified; | ||||
| @ -133,30 +151,15 @@ namespace Oqtane.Repository | ||||
|                     moduledef = new ModuleDefinition { ModuleDefinitionName = moduledefinition.ModuleDefinitionName }; | ||||
|                     _db.ModuleDefinition.Add(moduledef); | ||||
|                     _db.SaveChanges(); | ||||
|                     moduledefinition.Version = ""; | ||||
|                 } | ||||
|                 else | ||||
|                 { | ||||
|                     // existing module definition | ||||
|                     if (!string.IsNullOrEmpty(moduledef.Name)) | ||||
|                     { | ||||
|                         moduledefinition.Name = moduledef.Name; | ||||
|                     } | ||||
|  | ||||
|                     if (!string.IsNullOrEmpty(moduledef.Description)) | ||||
|                     { | ||||
|                         moduledefinition.Description = moduledef.Description; | ||||
|                     } | ||||
|  | ||||
|                     if (!string.IsNullOrEmpty(moduledef.Categories)) | ||||
|                     { | ||||
|                         moduledefinition.Categories = moduledef.Categories; | ||||
|                     } | ||||
|  | ||||
|                     if (!string.IsNullOrEmpty(moduledef.Version)) | ||||
|                     { | ||||
|                         moduledefinition.Version = moduledef.Version; | ||||
|                     } | ||||
|  | ||||
|                     // override user customizable property values | ||||
|                     moduledefinition.Name = (!string.IsNullOrEmpty(moduledef.Name)) ? moduledef.Name : moduledefinition.Name; | ||||
|                     moduledefinition.Description = (!string.IsNullOrEmpty(moduledef.Description)) ? moduledef.Description : moduledefinition.Description; | ||||
|                     moduledefinition.Categories = (!string.IsNullOrEmpty(moduledef.Categories)) ? moduledef.Categories : moduledefinition.Categories; | ||||
|                     moduledefinition.Version = (!string.IsNullOrEmpty(moduledef.Version)) ? moduledef.Version : moduledefinition.Version; | ||||
|                     // remove module definition from list as it is already synced | ||||
|                     moduledefs.Remove(moduledef); | ||||
|                 } | ||||
| @ -236,7 +239,6 @@ namespace Oqtane.Repository | ||||
|  | ||||
|                     // set internal properties | ||||
|                     moduledefinition.ModuleDefinitionName = qualifiedModuleType; | ||||
|                     moduledefinition.Version = ""; // will be populated from database | ||||
|                     moduledefinition.ControlTypeTemplate = modulecontroltype.Namespace + "." + Constants.ActionToken + ", " + modulecontroltype.Assembly.GetName().Name; | ||||
|                     moduledefinition.AssemblyName = assembly.GetName().Name; | ||||
|                     if (string.IsNullOrEmpty(moduledefinition.PackageName)) | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Shaun Walker
					Shaun Walker