Skip to content

Commit

Permalink
feat: Added parameters function and workflow parameters config
Browse files Browse the repository at this point in the history
  • Loading branch information
thygesteffensen committed Mar 3, 2021
1 parent 5282445 commit d505842
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
using System.Linq;
using Microsoft.Extensions.Options;
using Parser.ExpressionParser.Functions.Base;
using Parser.ExpressionParser.Functions.CustomException;

namespace Parser.ExpressionParser.Functions.Implementations.Miscellaneous
{
public class ParametersFunction : Function
{
private readonly WorkflowParameters _flowParameters;

public ParametersFunction(IOptions<WorkflowParameters> flowParameters) : base("parameters")
{
_flowParameters = flowParameters?.Value;
}

public override ValueContainer ExecuteFunction(params ValueContainer[] parameters)
{
var paramKey = parameters.FirstOrDefault();

if (paramKey == null || paramKey.Type() != ValueContainer.ValueType.String)
{
throw new ArgumentError("The parameters functions is expected to have one argument of type string");
}

if (_flowParameters?.Parameters == null)
{
return paramKey;
}

if (_flowParameters.Parameters.ContainsKey(paramKey.GetValue<string>()))
{
return _flowParameters.Parameters[paramKey.GetValue<string>()];
}

throw InvalidTemplateException.BuildInvalidLanguageFunction("ActionName", "parameters");
}
}
}
10 changes: 10 additions & 0 deletions PowerAutomateMockUp/WorkflowParameters.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
using System.Collections.Generic;
using Parser.ExpressionParser;

namespace Parser
{
public class WorkflowParameters
{
public Dictionary<string, ValueContainer> Parameters { get; set; }
}
}

0 comments on commit d505842

Please sign in to comment.