Exemplo n.º 1
0
        public static CleanDateTimeResult Clean(string name, IReadOnlyList <Regex> cleanDateTimeRegexes)
        {
            CleanDateTimeResult result = new CleanDateTimeResult(name);
            var len = cleanDateTimeRegexes.Count;

            for (int i = 0; i < len; i++)
            {
                if (TryClean(name, cleanDateTimeRegexes[i], ref result))
                {
                    return(result);
                }
            }

            return(result);
        }
Exemplo n.º 2
0
        private static bool TryClean(string name, Regex expression, ref CleanDateTimeResult result)
        {
            var match = expression.Match(name);

            if (match.Success &&
                match.Groups.Count == 5 &&
                match.Groups[1].Success &&
                match.Groups[2].Success &&
                int.TryParse(match.Groups[2].Value, NumberStyles.Integer, CultureInfo.InvariantCulture, out var year))
            {
                result = new CleanDateTimeResult(match.Groups[1].Value.TrimEnd(), year);
                return(true);
            }

            return(false);
        }
Exemplo n.º 3
0
        private static CleanDateTimeResult Clean(string name, Regex expression)
        {
            var result = new CleanDateTimeResult();

            var match = expression.Match(name);

            if (match.Success && match.Groups.Count == 4)
            {
                if (match.Groups[1].Success && match.Groups[2].Success && int.TryParse(match.Groups[2].Value, NumberStyles.Integer, CultureInfo.InvariantCulture, out var year))
                {
                    name              = match.Groups[1].Value;
                    result.Year       = year;
                    result.HasChanged = true;
                }
            }

            result.Name = name;
            return(result);
        }
Exemplo n.º 4
0
        private CleanDateTimeResult Clean(string name, string expression)
        {
            var result = new CleanDateTimeResult();

            var match = _iRegexProvider.GetRegex(expression, RegexOptions.IgnoreCase).Match(name);

            if (match.Success && match.Groups.Count == 4)
            {
                int year;
                if (match.Groups[1].Success && match.Groups[2].Success && int.TryParse(match.Groups[2].Value, NumberStyles.Integer, CultureInfo.InvariantCulture, out year))
                {
                    name              = match.Groups[1].Value;
                    result.Year       = year;
                    result.HasChanged = true;
                }
            }

            result.Name = name;
            return(result);
        }