Ejemplo n.º 1
0
        private static string CreateRegex(WordCriteriaContract word)
        {
            var regexBuilder = new StringBuilder();

            regexBuilder.Append("^");

            if (!string.IsNullOrEmpty(word.ExactMatch))
            {
                regexBuilder.Append(word.ExactMatch);
            }
            else
            {
                if (!string.IsNullOrEmpty(word.StartsWith))
                {
                    regexBuilder.Append("(").Append(word.StartsWith).Append(").*");
                }

                if (word.Contains != null)
                {
                    foreach (var innerWord in word.Contains.Where(innerWord => !string.IsNullOrEmpty(innerWord)))
                    {
                        regexBuilder.Append(".*(").Append(innerWord).Append(").*");
                    }
                }

                if (!string.IsNullOrEmpty(word.EndsWith))
                {
                    regexBuilder.Append(".*(").Append(word.EndsWith).Append(")");
                }
            }

            regexBuilder.Append("$");

            return(regexBuilder.ToString());
        }
Ejemplo n.º 2
0
        public static string Create(WordCriteriaContract word)
        {
            var stringBuilder = new StringBuilder();

            if (!string.IsNullOrEmpty(word.ExactMatch))
            {
                stringBuilder.Append(word.ExactMatch);
            }

            if (!string.IsNullOrEmpty(word.StartsWith))
            {
                stringBuilder.Append(word.StartsWith).Append("%");
            }

            if (word.Contains != null)
            {
                foreach (var innerWord in word.Contains.Where(innerWord => !string.IsNullOrEmpty(innerWord)))
                {
                    stringBuilder.Append("%").Append(innerWord).Append("%");
                }
            }

            if (!string.IsNullOrEmpty(word.EndsWith))
            {
                stringBuilder.Append("%").Append(word.EndsWith);
            }

            // Escape unwanted characters
            stringBuilder.Replace("[", "[[]");

            return(stringBuilder.ToString());
        }
Ejemplo n.º 3
0
        public static string Create(WordCriteriaContract word)
        {
            if (!string.IsNullOrEmpty(word.ExactMatch))
            {
                return(NHibernateDao.EscapeQuery(word.ExactMatch));
            }

            var stringBuilder = new StringBuilder();

            if (!string.IsNullOrEmpty(word.StartsWith))
            {
                stringBuilder.Append(word.StartsWith).Append(AnyStringWildcard);
            }

            if (word.Contains != null)
            {
                foreach (var innerWord in word.Contains.Where(innerWord => !string.IsNullOrEmpty(innerWord)))
                {
                    stringBuilder.Append(AnyStringWildcard).Append(innerWord).Append(AnyStringWildcard);
                }
            }

            if (!string.IsNullOrEmpty(word.EndsWith))
            {
                stringBuilder.Append(AnyStringWildcard).Append(word.EndsWith);
            }

            var escapedValue = NHibernateDao.EscapeQuery(stringBuilder.ToString());

            return(escapedValue);
        }
Ejemplo n.º 4
0
        private string GetRegexFromDisjunction(WordCriteriaContract disjunction)
        {
            if (!string.IsNullOrWhiteSpace(disjunction.ExactMatch))
            {
                return(EscapeChars(disjunction.ExactMatch));
            }

            var regexBuilder = new StringBuilder();

            if (!string.IsNullOrWhiteSpace(disjunction.StartsWith))
            {
                var escapedText = EscapeChars(disjunction.StartsWith.ToLower());
                regexBuilder.Append(escapedText);
            }

            regexBuilder.Append(".*");

            foreach (var contains in disjunction.Contains)
            {
                if (!string.IsNullOrWhiteSpace(contains))
                {
                    var escapedText = EscapeChars(contains.ToLower());
                    regexBuilder.Append(escapedText);
                    regexBuilder.Append(".*");
                }
            }

            if (!string.IsNullOrWhiteSpace(disjunction.EndsWith))
            {
                var escapedText = EscapeChars(disjunction.EndsWith.ToLower());
                regexBuilder.Append(escapedText);
            }

            return(regexBuilder.ToString());
        }
Ejemplo n.º 5
0
        private static void ConvertWildcardToRegex(WordCriteriaContract wordCriteria)
        {
            wordCriteria.StartsWith = ConvertWildcardToRegex(wordCriteria.StartsWith);
            wordCriteria.EndsWith   = ConvertWildcardToRegex(wordCriteria.EndsWith);

            if (wordCriteria.Contains != null)
            {
                wordCriteria.Contains = wordCriteria.Contains.Select(ConvertWildcardToRegex).ToList();
            }
        }