Exemple #1
0
        private static int CompareBuildVersions(Maybe <string> leftVersion, Maybe <string> rightVersion)
        {
            if (leftVersion.None && rightVersion.None)
            {
                return(0); // equal if both absent
            }
            if (leftVersion.Any() && rightVersion.None)
            {
                return(1);
            }
            if (leftVersion.None && rightVersion.Any())
            {
                return(-1);
            }
            int result = CompareSegmentBySegment(leftVersion.Single(), rightVersion.Single());

            return(result);
        }
Exemple #2
0
        private static int ComparePrereleaseVersions(Maybe <string> leftVersion, Maybe <string> rightVersion)
        {
            // If the prerelease segment is absent in both instances, then they are considered equal.
            if (leftVersion.None && rightVersion.None)
            {
                return(0);
            }

            // By definition, a prerelease version is less than the absence of a prerelease version - this is a bit counterintuitive.
            if (leftVersion.Any() && rightVersion.None)
            {
                return(-1);
            }
            if (leftVersion.None && rightVersion.Any())
            {
                return(1);
            }
            int result = CompareSegmentBySegment(leftVersion.Single(), rightVersion.Single());

            return(result);
        }
Exemple #3
0
 private int MaybeHashCode(Maybe <string> item)
 {
     return(item.Any() ? item.Single().GetHashCode() : string.Empty.GetHashCode());
 }