fix #2763 - prevent module definitions from having duplicate names

This commit is contained in:
sbwalker 2023-05-03 12:46:29 -04:00
parent 99ac0a3cab
commit c6ba4f4bee
2 changed files with 109 additions and 98 deletions

View File

@ -280,6 +280,9 @@
if (await interop.FormValid(form)) if (await interop.FormValid(form))
{ {
try try
{
var moduleDefinitions = await ModuleDefinitionService.GetModuleDefinitionsAsync(PageState.Site.SiteId);
if (!moduleDefinitions.Any(item => item.Name.ToLower() == _name.ToLower() && item.ModuleDefinitionId != _moduleDefinitionId))
{ {
var moduledefinition = await ModuleDefinitionService.GetModuleDefinitionAsync(_moduleDefinitionId, ModuleState.SiteId); var moduledefinition = await ModuleDefinitionService.GetModuleDefinitionAsync(_moduleDefinitionId, ModuleState.SiteId);
if (moduledefinition.Name != _name) if (moduledefinition.Name != _name)
@ -298,6 +301,11 @@
await ModuleDefinitionService.UpdateModuleDefinitionAsync(moduledefinition); await ModuleDefinitionService.UpdateModuleDefinitionAsync(moduledefinition);
await logger.LogInformation("ModuleDefinition Saved {ModuleDefinition}", moduledefinition); await logger.LogInformation("ModuleDefinition Saved {ModuleDefinition}", moduledefinition);
NavigationManager.NavigateTo(NavigateUrl()); NavigationManager.NavigateTo(NavigateUrl());
}
else
{
AddModuleMessage(Localizer["Message.DuplicateName"], MessageType.Warning);
}
} }
catch (Exception ex) catch (Exception ex)
{ {

View File

@ -216,4 +216,7 @@
<data name="Translations.Heading" xml:space="preserve"> <data name="Translations.Heading" xml:space="preserve">
<value>Translations</value> <value>Translations</value>
</data> </data>
<data name="Message.DuplicateName" xml:space="preserve">
<value>A Module With The Name Specified Already Exists</value>
</data>
</root> </root>