elsa-core/src/core/Elsa.Management/Implementations/ExpressionSyntaxRegistry.cs

20 lines
976 B
C#
Raw Normal View History

2022-01-04 08:42:12 +00:00
using Elsa.Management.Models;
using Elsa.Management.Services;
2022-01-04 08:42:12 +00:00
namespace Elsa.Management.Implementations;
2022-01-04 08:42:12 +00:00
public class ExpressionSyntaxRegistry : IExpressionSyntaxRegistry
{
private readonly IDictionary<string, ExpressionSyntaxDescriptor> _expressionSyntaxDescriptors = new Dictionary<string, ExpressionSyntaxDescriptor>();
public void Add(ExpressionSyntaxDescriptor descriptor) => _expressionSyntaxDescriptors[descriptor.Syntax] = descriptor;
public void AddMany(IEnumerable<ExpressionSyntaxDescriptor> descriptors)
{
foreach (var descriptor in descriptors)
Add(descriptor);
}
public IEnumerable<ExpressionSyntaxDescriptor> ListAll() => _expressionSyntaxDescriptors.Values;
public ExpressionSyntaxDescriptor? Find(Func<ExpressionSyntaxDescriptor, bool> predicate) => _expressionSyntaxDescriptors.Values.FirstOrDefault(predicate);
public ExpressionSyntaxDescriptor? Find(string syntax) => Find(x => x.Syntax == syntax);
}