diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateImportService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateImportService.java index 0f1830bb2..c6accf6e8 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateImportService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateImportService.java @@ -709,22 +709,16 @@ public class DossierTemplateImportService { private void validateDossierTemplateName(DossierTemplate dossierTemplateMeta) { - boolean cond = true; - int index = 0; + int nameSuffix = 0; String dossierTemplateName = dossierTemplateMeta.getName(); - do { - try { - dossierTemplatePersistenceService.validateDossierTemplateNameIsUnique(dossierTemplateMeta.getName()); - cond = false; - } catch (ConflictException e) { - if (index == 0) { - dossierTemplateMeta.setName("Copy of " + dossierTemplateName); - } else { - dossierTemplateMeta.setName("Copy of " + dossierTemplateName + " - " + index); - } - index++; + while (!dossierTemplatePersistenceService.isDossierTemplateNameUnique(dossierTemplateMeta.getName())) { + if (nameSuffix == 0) { + dossierTemplateMeta.setName("Copy of " + dossierTemplateName); + } else { + dossierTemplateMeta.setName("Copy of " + dossierTemplateName + " - " + nameSuffix); } - } while (cond); + nameSuffix++; + } } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java index cefa00591..4d4ed309e 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java @@ -73,14 +73,20 @@ public class DossierTemplatePersistenceService { } + @Transactional public void validateDossierTemplateNameIsUnique(String templateName) { - getAllDossierTemplates().forEach(existing -> { - if (existing.getName().equals(templateName)) { - throw new ConflictException("DossierTemplate name must be unique"); - } - }); + if (!isDossierTemplateNameUnique(templateName)) { + throw new ConflictException("DossierTemplate name must be unique"); + } + } + + + @Transactional + public boolean isDossierTemplateNameUnique(String templateName) { + + return dossierTemplateRepository.existsByName(templateName); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierTemplateRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierTemplateRepository.java index a094c6793..b8f9348e5 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierTemplateRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierTemplateRepository.java @@ -17,4 +17,7 @@ public interface DossierTemplateRepository extends JpaRepository findByIdAndNotDeleted(String dossierTemplateId); + + boolean existsByName(String name); + }