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); } }
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); }
public bool Equals(BuildRange buildRange) { return(minBuild.Equals(buildRange.minBuild) && maxBuild.Equals(buildRange.maxBuild)); }