From 6d1b7e32113b10ac7a35c650bd0314f0518cbccd Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Sun, 31 May 2026 12:35:25 +0200 Subject: [PATCH] Address activity registry review feedback --- .../Services/ActivityRegistry.cs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/modules/Elsa.Workflows.Core/Services/ActivityRegistry.cs b/src/modules/Elsa.Workflows.Core/Services/ActivityRegistry.cs index ff90b7775..9e52e5721 100644 --- a/src/modules/Elsa.Workflows.Core/Services/ActivityRegistry.cs +++ b/src/modules/Elsa.Workflows.Core/Services/ActivityRegistry.cs @@ -324,10 +324,9 @@ public class ActivityRegistry(IActivityDescriber activityDescriber, IEnumerable< if (_agnosticRegistry.ProvidedActivityDescriptors.ContainsKey(providerType)) yield return _agnosticRegistry; - foreach (var registry in _tenantRegistries.Values) + foreach (var registry in _tenantRegistries.Values.Where(x => x.ProvidedActivityDescriptors.ContainsKey(providerType))) { - if (registry.ProvidedActivityDescriptors.ContainsKey(providerType)) - yield return registry; + yield return registry; } } @@ -350,9 +349,15 @@ public class ActivityRegistry(IActivityDescriber activityDescriber, IEnumerable< private static void RecomputeLatestDescriptor(TenantRegistryData registry, string typeName) { - var latestDescriptor = registry.ActivityDescriptors.Values - .Where(x => x.TypeName == typeName) - .MaxBy(x => x.Version); + ActivityDescriptor? latestDescriptor = null; + foreach (var descriptor in registry.ActivityDescriptors.Values) + { + if (descriptor.TypeName != typeName) + continue; + + if (latestDescriptor == null || descriptor.Version > latestDescriptor.Version) + latestDescriptor = descriptor; + } if (latestDescriptor == null) registry.LatestActivityDescriptors.TryRemove(typeName, out _); @@ -370,4 +375,4 @@ public class ActivityRegistry(IActivityDescriber activityDescriber, IEnumerable< // Normalize null to "*" so both map to the same group return tenantId ?? Tenant.AgnosticTenantId; } -} \ No newline at end of file +}