//TODO: We need a public method here to just match a field name against CultureIsoCodeFieldNameMatchExpression

        /// <summary>
        /// Returns all index fields that are culture specific (suffixed)
        /// </summary>
        /// <param name="index"></param>
        /// <param name="culture"></param>
        /// <returns></returns>
        public static IEnumerable <string> GetCultureFields(this IUmbracoIndex index, string culture)
        {
            var allFields = index.GetFields();

            // ReSharper disable once LoopCanBeConvertedToQuery
            foreach (var field in allFields)
            {
                var match = CultureIsoCodeFieldNameMatchExpression.Match(field);
                if (match.Success && match.Groups.Count == 3 && culture.InvariantEquals(match.Groups[2].Value))
                {
                    yield return(field);
                }
            }
        }
Пример #2
0
        /// <summary>
        /// Returns all index fields that are culture specific (suffixed) or invariant
        /// </summary>
        /// <param name="index"></param>
        /// <param name="culture"></param>
        /// <returns></returns>
        public static IEnumerable <string> GetCultureAndInvariantFields(this IUmbracoIndex index, string culture)
        {
            IEnumerable <string> allFields = index.GetFieldNames();

            foreach (var field in allFields)
            {
                var match = CultureIsoCodeFieldNameMatchExpression.Match(field);
                if (match.Success && culture.InvariantEquals(match.Groups["CultureName"].Value))
                {
                    yield return(field); //matches this culture field
                }
                else if (!match.Success)
                {
                    yield return(field); //matches no culture field (invariant)
                }
            }
        }
Пример #3
0
        //TODO: We need a public method here to just match a field name against CultureIsoCodeFieldNameMatchExpression

        /// <summary>
        /// Returns all index fields that are culture specific (suffixed)
        /// </summary>
        /// <param name="index"></param>
        /// <param name="culture"></param>
        /// <returns></returns>
        public static IEnumerable <string> GetCultureFields(this IUmbracoIndex index, string culture)
        {
            IEnumerable <string> allFields = index.GetFieldNames();

            var results = new List <string>();

            foreach (var field in allFields)
            {
                var match = CultureIsoCodeFieldNameMatchExpression.Match(field);
                if (match.Success && culture.InvariantEquals(match.Groups["CultureName"].Value))
                {
                    results.Add(field);
                }
            }

            return(results);
        }