Ejemplo n.º 1
0
        public void Execute(object parameter)
        {
            IRegexRulePart regexRulePart = RegexRulePart.Create(ruleEditorViewModel.SelectedRuleType);

            ruleEditorViewModel.SelectedRegexRulePart = regexRulePart;
            ruleEditorViewModel.StagingRule.RegexRuleParts.Add(regexRulePart);
            ruleEditorViewModel.GenerateCompliantExampleCommand.Execute(null);
        }
Ejemplo n.º 2
0
        public void Execute(object parameter)
        {
            IRegexRulePart regexRulePart = ruleEditorViewModel.SelectedRegexRulePart;
            int            index         = ruleEditorViewModel.StagingRule.RegexRuleParts.IndexOf(regexRulePart);

            ruleEditorViewModel.StagingRule.RegexRuleParts.RemoveAt(index);
            ruleEditorViewModel.StagingRule.RegexRuleParts.Insert(index - 1, regexRulePart);
            ruleEditorViewModel.SelectedRegexRulePart = ruleEditorViewModel.StagingRule.RegexRuleParts[index - 1];
            ruleEditorViewModel.GenerateCompliantExampleCommand.Execute(null);
        }
Ejemplo n.º 3
0
        public bool CanExecute(object parameter)
        {
            if (ruleEditorViewModel.SelectedRegexRulePart == null)
            {
                return(false);
            }
            IRegexRulePart regexRulePart = ruleEditorViewModel.SelectedRegexRulePart;
            int            index         = ruleEditorViewModel.StagingRule.RegexRuleParts.IndexOf(regexRulePart);

            return(index > 0);
        }
 public OptionSetEditorView(IRegexRulePart regexRulePart)
 {
     InitializeComponent();
     OptionSetEditorViewModel = new OptionSetEditorViewModel(regexRulePart);
     RegexRulePart            = regexRulePart;
     DataContext     = OptionSetEditorViewModel;
     PreviewKeyDown += (s, e) => { if (e.Key == Key.Escape)
                                   {
                                       Close();
                                   }
     };
 }
Ejemplo n.º 5
0
        private static string GetRegexPartFromRuleType(IRegexRulePart regexRulePart)
        {
            string regexPartOutput            = "";
            string optionalModifierStart      = regexRulePart.IsOptional ? @"(" : "";
            string optionalModifierEnd        = regexRulePart.IsOptional ? @")?" : "";
            string caseSensitiveModifierStart = regexRulePart.IsCaseSensitive ? @"(?-i)" : @"(?i)";
            string caseSensitiveModifierEnd   = regexRulePart.IsCaseSensitive ? @"(?i)" : @"(?-i)";

            switch (regexRulePart.RuleType)
            {
            case AnyLetter:
                switch (regexRulePart.CaseSensitivityMode)
                {
                case CaseSensitivity.UpperCase:
                    regexPartOutput += @"[A-Z]";
                    break;

                case CaseSensitivity.AnyCase:
                    regexPartOutput += @"[A-Za-z]";
                    break;

                case CaseSensitivity.LowerCase:
                    regexPartOutput += @"[a-z]";
                    break;

                case CaseSensitivity.None:
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
                break;

            case AnyAlphanumeric:
                switch (regexRulePart.CaseSensitivityMode)
                {
                case CaseSensitivity.UpperCase:
                    regexPartOutput += "[A-Z0-9]";
                    break;

                case CaseSensitivity.AnyCase:
                    regexPartOutput += "[A-Za-z0-9]";
                    break;

                case CaseSensitivity.LowerCase:
                    regexPartOutput += "[a-z0-9]";
                    break;

                case CaseSensitivity.None:
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
                break;

            case AnyDigit:
                regexPartOutput += @"\d";
                break;

            case CustomText:
                regexPartOutput += caseSensitiveModifierStart +
                                   SanitizeWord(regexRulePart.RawUserInputValue) +
                                   caseSensitiveModifierEnd;

                break;

            case OptionSet:
                List <string> options = regexRulePart.Options
                                        .Select(x => SanitizeWord(x.OptionValue))
                                        .Where(x => !string.IsNullOrWhiteSpace(x))
                                        .ToList();
                if (options.Count < 1)
                {
                    break;
                }
                regexPartOutput = caseSensitiveModifierStart +
                                  $"({string.Join(@"|", options)})" +
                                  caseSensitiveModifierEnd;
                break;

            case FullStop:
                regexPartOutput = SanitizeCharacter(@".");
                break;

            case Hyphen:
                regexPartOutput = SanitizeCharacter(@"-");
                break;

            case Underscore:
                regexPartOutput = SanitizeCharacter(@"_");
                break;

            case OpenParenthesis:
                regexPartOutput = SanitizeCharacter(@"(");
                break;

            case CloseParenthesis:
                regexPartOutput = SanitizeCharacter(@")");
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            return(optionalModifierStart + regexPartOutput + optionalModifierEnd);
        }