From 470399ed219f714651b173696bafd12e48a04c30 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Sat, 28 Dec 2024 18:55:28 +0100 Subject: [PATCH] Refine trigger replacement logic with empty check. Added a check to avoid unnecessary operations when the removed list is empty in the ReplaceAsync method. This prevents potential redundant calls and ensures more efficient execution. --- .../Modules/Runtime/TriggerStore.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/modules/Elsa.EntityFrameworkCore/Modules/Runtime/TriggerStore.cs b/src/modules/Elsa.EntityFrameworkCore/Modules/Runtime/TriggerStore.cs index 2b2e26913..05ab1d03b 100644 --- a/src/modules/Elsa.EntityFrameworkCore/Modules/Runtime/TriggerStore.cs +++ b/src/modules/Elsa.EntityFrameworkCore/Modules/Runtime/TriggerStore.cs @@ -37,8 +37,14 @@ public class EFCoreTriggerStore(EntityStore /// public async ValueTask ReplaceAsync(IEnumerable removed, IEnumerable added, CancellationToken cancellationToken = default) { - var filter = new TriggerFilter { Ids = removed.Select(r => r.Id).ToList() }; - await DeleteManyAsync(filter, cancellationToken); + var removedList = removed.ToList(); + + if(removedList.Count > 0) + { + var filter = new TriggerFilter { Ids = removedList.Select(r => r.Id).ToList() }; + await DeleteManyAsync(filter, cancellationToken); + } + await store.SaveManyAsync(added, OnSaveAsync, cancellationToken); }