Esempio n. 1
0
        private static int FindCommonFragmentLength(Qualifier q1, Qualifier q2, StringComparison comparison = StringComparison.Ordinal)
        {
            if (null == q1 || null == q2)
            {
                return(int.MinValue);
            }
            if (!q1.IsCompliantTo(q2))
            {
                return(int.MinValue);
            }
            if (q1.GuidOrNameCase != Qualifier.GuidOrNameOneofCase.Named)
            {
                return(int.MinValue);
            }

            int count = Math.Min(q1.Named.Frags.Count, q2.Named.Frags.Count);
            int index;

            for (index = 0; index < count; index++)
            {
                if (0 != string.Compare(q1.Named.Frags[index], q2.Named.Frags[index], comparison))
                {
                    return(index);
                }
            }

            return(index);
        }
Esempio n. 2
0
        public static Qualifier Append(this Qualifier aQualifier, Qualifier bQualifier)
        {
            if (aQualifier.IsCompliantTo(bQualifier))
            {
                switch (aQualifier.GuidOrNameCase)
                {
                case Qualifier.GuidOrNameOneofCase.Named:
                    return(aQualifier.Named.Frags.Concat(bQualifier.Named.Frags).ToArray().ToQualifier());

                default:
                    throw new NotSupportedException($"Not support for '{Qualifier.GuidOrNameOneofCase.Anonymous}'");
                }
            }
            throw new NotSupportedException("Incompliant qualifier types");
        }