From d92512f08730e5b6679f0bf065e20bbac89ea3e1 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Sun, 13 Apr 2025 20:26:31 +0200 Subject: [PATCH] Fix Container type (#6584) Fixes an incorrect type use: IContainer lives in System.ComponentModel and does not represent a container activity. The correct type to use is `Container`. --- .../Services/ActivityDescriber.cs | 26 +++++-------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/src/modules/Elsa.Workflows.Core/Services/ActivityDescriber.cs b/src/modules/Elsa.Workflows.Core/Services/ActivityDescriber.cs index bbed2aded..f874bbeac 100644 --- a/src/modules/Elsa.Workflows.Core/Services/ActivityDescriber.cs +++ b/src/modules/Elsa.Workflows.Core/Services/ActivityDescriber.cs @@ -10,27 +10,13 @@ using Elsa.Workflows.Memory; using Elsa.Workflows.Models; using Elsa.Workflows.UIHints; using Humanizer; +using Container = Elsa.Workflows.Activities.Container; namespace Elsa.Workflows; /// -public class ActivityDescriber : IActivityDescriber +public class ActivityDescriber(IPropertyDefaultValueResolver defaultValueResolver, IActivityFactory activityFactory, IPropertyUIHandlerResolver propertyUIHandlerResolver) : IActivityDescriber { - //private readonly IPropertyOptionsResolver _optionsResolver; - private readonly IPropertyDefaultValueResolver _defaultValueResolver; - private readonly IActivityFactory _activityFactory; - private readonly IPropertyUIHandlerResolver _propertyUIHandlerResolver; - /// - /// Constructor. - /// - public ActivityDescriber(IPropertyDefaultValueResolver defaultValueResolver, IActivityFactory activityFactory, IPropertyUIHandlerResolver propertyUIHandlerResolver) - { - //_optionsResolver = optionsResolver; - _defaultValueResolver = defaultValueResolver; - _activityFactory = activityFactory; - _propertyUIHandlerResolver = propertyUIHandlerResolver; - } - /// public async Task DescribeActivityAsync([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicProperties)] Type activityType, CancellationToken cancellationToken = default) { @@ -90,14 +76,14 @@ public class ActivityDescriber : IActivityDescriber Ports = allPorts.ToList(), Inputs = (await DescribeInputPropertiesAsync(inputProperties, cancellationToken)).ToList(), Outputs = (await DescribeOutputPropertiesAsync(outputProperties, cancellationToken)).ToList(), - IsContainer = typeof(IContainer).IsAssignableFrom(activityType), + IsContainer = typeof(Container).IsAssignableFrom(activityType), IsBrowsable = browsableAttr == null || browsableAttr.Browsable, IsStart = isStart, IsTerminal = isTerminal, Attributes = attributes, Constructor = context => { - var activity = _activityFactory.Create(activityType, context); + var activity = activityFactory.Create(activityType, context); activity.Type = fullTypeName; return activity; } @@ -158,7 +144,7 @@ public class ActivityDescriber : IActivityDescriber if (wrappedPropertyType.IsNullableType()) wrappedPropertyType = wrappedPropertyType.GetTypeOfNullable(); - var uiSpecification = await _propertyUIHandlerResolver.GetUIPropertiesAsync(propertyInfo, null, cancellationToken); + var uiSpecification = await propertyUIHandlerResolver.GetUIPropertiesAsync(propertyInfo, null, cancellationToken); return new InputDescriptor ( @@ -172,7 +158,7 @@ public class ActivityDescriber : IActivityDescriber descriptionAttribute?.Description ?? inputAttribute?.Description, inputAttribute?.Category, inputAttribute?.Order ?? 0, - _defaultValueResolver.GetDefaultValue(propertyInfo), + defaultValueResolver.GetDefaultValue(propertyInfo), inputAttribute?.DefaultSyntax, inputAttribute?.IsReadOnly ?? false, inputAttribute?.IsBrowsable ?? true,