2023-03-03 21:47:23 +00:00
|
|
|
using Elsa.Expressions.Contracts;
|
2022-05-26 10:47:31 +00:00
|
|
|
using Elsa.Expressions.Models;
|
2022-01-04 08:42:12 +00:00
|
|
|
|
2023-03-03 13:48:05 +00:00
|
|
|
namespace Elsa.Workflows.Management.Services;
|
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);
|
|
|
|
|
}
|