public async Task <object> Invoke(object context) { var evaluationContext = new ContextFrame { Scope = context, Step = this, }; // check the existence of the object var check = false; try { await Interpolate(Name); check = true; } catch (Exception) { } if (!check) { // create list if not exist var List = new List <dynamic>(); await Interpolator.AssignValueOnDynamic(context, Name, List); } var expressionValue = await Interpolate(Expression); var result = await AppendValueOnDynamic(Name, expressionValue); Task <object> Interpolate(string expression) => Interpolator.InterpolateExpression(expression, evaluationContext); Task <object> AppendValueOnDynamic(string name, dynamic value) => Interpolator.AppendValueOnDynamic(context, name, value); return(result); }