public ExpEvalResultType Next(string input, out ActionLink actionLink) { actionLink = null; var res = ExpEvalResultType.Empty; if (SkipEvaluation) { actionLink = GetDefaultLink(); if (actionLink != null) { res = ExpEvalResultType.Skipped; } return(res); } if (Options == null || Options.Count == 0) { return(res); } var searchResult = Options.FirstOrDefault(item => item.Item.Value.Equals(input, StringComparison.InvariantCultureIgnoreCase)); if (searchResult?.Link != null) { res = ExpEvalResultType.True; actionLink = searchResult.Link; } else { res = ExpEvalResultType.Invalid; } return(res); }
public ExpEvalResultType Next(string input, out ActionLink actionLink) { actionLink = null; ExpEvalResultType res = ExpEvalResultType.Empty; if (SkipEvaluation) { actionLink = GetDefaultLink(); if (actionLink != null) { res = ExpEvalResultType.Skipped; } return(res); } res = Evaluate(input); switch (res) { case ExpEvalResultType.False: actionLink = FallbackAction; break; case ExpEvalResultType.True: actionLink = ForwardAction; break; default: break; } if (actionLink == null) { res = ExpEvalResultType.Empty; } return(res); }