From eb32d73ef045eb09db67505d39005f442647b9b6 Mon Sep 17 00:00:00 2001 From: Celestino Bellone <3385346+cbellone@users.noreply.github.com> Date: Tue, 19 Mar 2024 14:52:48 +0100 Subject: [PATCH] sort categories by size before applying modifications --- .../alfio/controller/api/v1/admin/EventApiV1Controller.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/alfio/controller/api/v1/admin/EventApiV1Controller.java b/src/main/java/alfio/controller/api/v1/admin/EventApiV1Controller.java index ad71bb6ac..64ec078c7 100644 --- a/src/main/java/alfio/controller/api/v1/admin/EventApiV1Controller.java +++ b/src/main/java/alfio/controller/api/v1/admin/EventApiV1Controller.java @@ -34,6 +34,7 @@ import alfio.model.group.Group; import alfio.model.modification.EventModification; import alfio.model.modification.LinkedGroupModification; +import alfio.model.modification.TicketCategoryModification; import alfio.model.result.ErrorCode; import alfio.model.result.Result; import alfio.model.result.ValidationResult; @@ -255,7 +256,7 @@ private Optional updateEvent(String slug, EventCreationRequest request, P private void handleCategoriesUpdate(Principal user, EventModification em, EventWithAdditionalInfo original, Event event) { if (em.getTicketCategories() != null && !em.getTicketCategories().isEmpty()) { var existingCategories = original.getTicketCategories(); - em.getTicketCategories().forEach(c -> { + em.getTicketCategories().stream().sorted(Comparator.comparing(TicketCategoryModification::getMaxTickets)).forEach(c -> { var existingCategory = findExistingCategory(existingCategories, c.getName(), c.getId()); if (existingCategory.isPresent()) { eventManager.updateCategory(existingCategory.get().getId(), event.getId(), c, user.getName());