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.
This commit is contained in:
Sipke Schoorstra 2024-12-28 18:55:28 +01:00
parent 2f1ddb4358
commit 470399ed21

View file

@ -37,8 +37,14 @@ public class EFCoreTriggerStore(EntityStore<RuntimeElsaDbContext, StoredTrigger>
/// <inheritdoc />
public async ValueTask ReplaceAsync(IEnumerable<StoredTrigger> removed, IEnumerable<StoredTrigger> 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);
}