elsa-core/src/modules/Elsa.ActivityDefinitions/Implementations/ActivityDefinitionPortResolver.cs
Sipke Schoorstra 4ed7f4b5da
Designer Activity Definitions (#3221)
* Incremental work on custom activities

* Incremental work on refactoring versioned entities

* Add ActivityDefinition infrastructure

* Incremental work on activity definition manager

* Incremental work on API endpoints

* Refactored flowchart component to include hierarchical nav

* Incremental work on modularization of designer component

* Restructuring into modules

* Rename CustomActivities module

* Apply security

* Fix activity definition GET endpoint

* Incremental work on activity definition provider

* Incremental work on activity definition execution

* Update ActivityDefinitionMaterializer.cs

* Update ActivityDefinitionActivityProvider.cs

* Add activity definition referenced version update handler

* Maintain position of not found activity

* Fix prefix naming
2022-07-21 16:18:42 +02:00

30 lines
1.2 KiB
C#

using Elsa.ActivityDefinitions.Activities;
using Elsa.ActivityDefinitions.Services;
using Elsa.Workflows.Core.Services;
namespace Elsa.ActivityDefinitions.Implementations;
/// <summary>
/// Returns a the root activity for a given <see cref="ActivityDefinitionActivity"/>.
/// </summary>
public class ActivityDefinitionPortResolver : IActivityPortResolver
{
private readonly IActivityDefinitionStore _store;
private readonly IActivityDefinitionMaterializer _activityDefinitionMaterializer;
public ActivityDefinitionPortResolver(IActivityDefinitionStore store, IActivityDefinitionMaterializer activityDefinitionMaterializer)
{
_store = store;
_activityDefinitionMaterializer = activityDefinitionMaterializer;
}
public int Priority => 0;
public bool GetSupportsActivity(IActivity activity) => activity is ActivityDefinitionActivity;
public async ValueTask<IEnumerable<IActivity>> GetPortsAsync(IActivity activity, CancellationToken cancellationToken = default)
{
var root = await _activityDefinitionMaterializer.MaterializeAsync((ActivityDefinitionActivity)activity, cancellationToken);
return new[] { root };
}
}