Esempio n. 1
0
        public GameVersionRange IntersectWith(GameVersionRange other)
        {
            if (ReferenceEquals(other, null))
            {
                throw new ArgumentNullException("other");
            }

            var highestLow = GameVersionBound.Highest(Lower, other.Lower);
            var lowestHigh = GameVersionBound.Lowest(Upper, other.Upper);

            return(IsEmpty(highestLow, lowestHigh) ? null : new GameVersionRange(highestLow, lowestHigh));
        }
Esempio n. 2
0
        public bool IsSupersetOf(GameVersionRange other)
        {
            if (ReferenceEquals(other, null))
            {
                throw new ArgumentNullException("other");
            }

            var lowerIsOkay = Lower.Value.IsAny ||
                              (Lower.Value < other.Lower.Value) ||
                              (Lower.Value == other.Lower.Value && (Lower.Inclusive || !other.Lower.Inclusive));

            var upperIsOkay = Upper.Value.IsAny ||
                              (other.Upper.Value < Upper.Value) ||
                              (other.Upper.Value == Upper.Value && (Upper.Inclusive || !other.Upper.Inclusive));

            return(lowerIsOkay && upperIsOkay);
        }
Esempio n. 3
0
        private static string DeriveString(GameVersionRange versionRange)
        {
            var sb = new StringBuilder();

            sb.Append(versionRange.Lower.Inclusive ? '[' : '(');

            if (versionRange.Lower.Value != null)
            {
                sb.Append(versionRange.Lower.Value);
            }

            sb.Append(',');

            if (versionRange.Upper.Value != null)
            {
                sb.Append(versionRange.Upper.Value);
            }

            sb.Append(versionRange.Upper.Inclusive ? ']' : ')');

            return(sb.ToString());
        }