예제 #1
0
        public bool Union(BuildRange buildRange, out BuildRange unionedRange)
        {
            unionedRange = null;

            if (buildRange.Contains(minBuild) ||
                buildRange.Contains(maxBuild) ||
                Contains(buildRange.minBuild) ||
                Contains(buildRange.maxBuild))
            {
                Build min = minBuild, max = maxBuild;

                if (buildRange.minBuild < min)
                {
                    min = buildRange.minBuild;
                }
                if (buildRange.maxBuild > max)
                {
                    max = buildRange.maxBuild;
                }

                unionedRange = new BuildRange(min, max);
                return(true);
            }
            else
            {
                return(false);
            }
        }
예제 #2
0
        public static bool TryParse(string value, out BuildRange result)
        {
            result = null;

            var parts = value.Split('-');

            if (parts.Length != 2)
            {
                return(false);
            }

            if (!Build.TryParse(parts[0], out var minBuild))
            {
                return(false);
            }
            if (!Build.TryParse(parts[1], out var maxBuild))
            {
                return(false);
            }

            if (minBuild.expansion != maxBuild.expansion)
            {
                throw new Exception("Expansion differs across build range. This is not allowed!");
            }

            result = new BuildRange()
            {
                minBuild = minBuild,
                maxBuild = maxBuild
            };

            return(true);
        }
예제 #3
0
 public bool Equals(BuildRange buildRange)
 {
     return(minBuild.Equals(buildRange.minBuild) && maxBuild.Equals(buildRange.maxBuild));
 }