using System; using System.Text.RegularExpressions; namespace BunyMuny { public class Rule { public RuleMatch Match { get; set; } public string Value { get; set; } public string Category { get; set; } public string Description { get; set; } public bool CaseSensitive { get; set; } // TODO: make this have an effect /// /// Checks whether or not a given value matches the rule. /// /// The string to check against the rule's Value. /// public bool Check(string input) { var value = Value; if (!CaseSensitive) { input = input.ToLower(); value = value.ToLower(); } switch (Match) { case RuleMatch.Exact: return input == value; case RuleMatch.Start: return input.StartsWith(value); case RuleMatch.End: return input.EndsWith(value); case RuleMatch.Regex: var re = new Regex(value); return re.IsMatch(input); case RuleMatch.Contains: return input.Contains(value); default: return false; } } } }