public bool Execute(ParserState state)
{
if (regex == null)
{
var ok = string.Equals(state.Variables[varname], value, StringComparison.OrdinalIgnoreCase);
if (ok)
{
state.Variables[varname] = newValue;
}
logger.LogDebug($"{state.Tracker} SetVarIf eq ok {ok} var {varname} = {newValue}.");
}
else
{
var match = regex.Match(state.Variables[varname]);
if (match.Success)
state.Variables[varname] = match.Groups[0].Value;
logger.LogDebug($"{state.Tracker} SetVarIf regex ok {match.Success} var {varname} = {match.Value}.");
}
return true;
}
}