Beispiel #1
0
        public static Qualifier ToCommonRoot(this Qualifier qualifier, Qualifier other, StringComparison comparison = StringComparison.Ordinal)
        {
            var fragmentLength = FindCommonFragmentLength(qualifier, other, comparison);

            switch (fragmentLength)
            {
            case int.MinValue:
                return(new Qualifier());

            default:
                return(qualifier.ToTrimmedNamed(0, fragmentLength));
            }
        }
Beispiel #2
0
        /// <summary>
        /// Extracts a sub qualifier relative to given super qualifier given the current qualifier.
        /// </summary>
        /// <param name="qualifier">The given qualifier</param>
        /// <param name="supQualifier">The super qualifier</param>
        /// <param name="comparison">Comparision method</param>
        /// <returns>A sub qualifier relative to super qualifier</returns>
        public static Qualifier ToSubQualifierOf(this Qualifier qualifier, Qualifier supQualifier, StringComparison comparison = StringComparison.Ordinal)
        {
            var fragmentLength = FindCommonFragmentLength(supQualifier, qualifier, comparison);

            switch (fragmentLength)
            {
            case int.MaxValue:
                return(new Qualifier());

            default:
                if (fragmentLength == supQualifier.Named.Frags.Count)
                {
                    // Only if super qualifier is completely covered by sub qualifier
                    return(qualifier.ToTrimmedNamed(supQualifier.Named.Frags.Count));
                }
                else
                {
                    return(new Qualifier());
                }
            }
        }