Skip to content

Commit 92fe354

Browse files
authored
Merge pull request #3190 from TechnologyEnhancedLearning/Develop/Fix/TD-5443-Issue-allowing-to-add-multiple-flags
TD-5443-Added check for existing flag names prior to add or edit custom flags.
2 parents a54fb43 + 57df4e1 commit 92fe354

File tree

1 file changed

+21
-2
lines changed
  • DigitalLearningSolutions.Web/Controllers/FrameworksController

1 file changed

+21
-2
lines changed

DigitalLearningSolutions.Web/Controllers/FrameworksController/Frameworks.cs

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -582,14 +582,33 @@ public IActionResult EditFrameworkFlag(CustomFlagViewModel model, int frameworkI
582582
{
583583
if (ModelState.IsValid)
584584
{
585+
var flags = frameworkService.GetCustomFlagsByFrameworkId(frameworkId, null)
586+
.Where(fn => fn.FlagName == model.FlagName).ToList();
587+
588+
bool nameExists = flags.Any(x => x.FlagName == model.FlagName);
589+
bool idExists = flags.Any(x => x.FlagId == flagId);
590+
585591
if (actionname == "Edit")
586592
{
587-
frameworkService.UpdateFrameworkCustomFlag(frameworkId, model.Id, model.FlagName, model.FlagGroup, model.FlagTagClass);
593+
if (nameExists && !idExists)
594+
{
595+
ModelState.AddModelError(nameof(model.FlagName), "A custom flag already exists.");
596+
return View("Developer/EditCustomFlag", model);
597+
}
598+
else
599+
frameworkService.UpdateFrameworkCustomFlag(frameworkId, model.Id, model.FlagName, model.FlagGroup, model.FlagTagClass);
588600
}
589601
else
590602
{
591-
frameworkService.AddCustomFlagToFramework(frameworkId, model.FlagName, model.FlagGroup, model.FlagTagClass);
603+
if (nameExists)
604+
{
605+
ModelState.AddModelError(nameof(model.FlagName), "A custom flag already exists.");
606+
return View("Developer/EditCustomFlag", model);
607+
}
608+
else
609+
frameworkService.AddCustomFlagToFramework(frameworkId, model.FlagName, model.FlagGroup, model.FlagTagClass);
592610
}
611+
593612
return RedirectToAction("EditFrameworkFlags", "Frameworks", new { frameworkId });
594613
}
595614
return View("Developer/EditCustomFlag", model);

0 commit comments

Comments
 (0)