Code/Functions/String/ContainsFunction.cs
using Expressive.Expressions;
namespace Expressive.Functions.String
{
internal class ContainsFunction : FunctionBase
{
#region FunctionBase Members
public override string Name
{
get
{
return "Contains";
}
}
public override object Evaluate(IExpression[] parameters, Context context)
{
this.ValidateParameterCount(parameters, 2, 2);
// TODO: evaluate (no pun intended) whether a cast is correct here.
var text = (string)parameters[0].Evaluate(Variables);
var value = (string)parameters[1].Evaluate(Variables);
if (value is null)
{
return false;
}
return text?.IndexOf(value, context.EqualityStringComparison) >= 0;
}
#endregion
}
}