private bool Like(FilterContext context, IFilterTarget target, ContentFilterElement element)
{
FilterOperand[] operands = GetOperands(element, 2);
object firstOperand = GetValue(context, operands[0], target);
string lhs;
LocalizedText firstOperandLocalizedText = firstOperand as LocalizedText;
if (firstOperandLocalizedText != null)
{
lhs = firstOperandLocalizedText.Text;
}
else
{
lhs = firstOperand as string;
}
object secondOperand = GetValue(context, operands[1], target);
string rhs;
LocalizedText secondOperandLocalizedText = secondOperand as LocalizedText;
if (secondOperandLocalizedText != null)
{
rhs = secondOperandLocalizedText.Text;
}
else
{
rhs = secondOperand as string;
}
// this operator requires strings.
if (lhs == null || rhs == null)
{
return false;
}
return Match((string)lhs, (string)rhs);
}