Ejemplo n.º 1
0
        static void InlineAssertInvariants(CSVersion v)
        {
#if DEBUG
            if (!_alreadyInCheck && v.IsValid)
            {
                _alreadyInCheck = true;
                try
                {
                    if (v.IsLongForm)
                    {
                        Debug.Assert(v.NormalizedText == ComputeLongFormVersion(v.Major, v.Minor, v.Patch, v.PrereleaseNameIdx, v.PrereleaseNumber, v.PrereleasePatch, v.BuildMetaData));
                    }
                    else
                    {
                        Debug.Assert(v.NormalizedText == ComputeShortFormVersion(v.Major, v.Minor, v.Patch, v.PrereleaseNameIdx, v.PrereleaseNumber, v.PrereleasePatch, v.BuildMetaData));
                    }
                    //// Systematically checks that a valid CSVersion can be parsed back in Long or Short form.
                    Debug.Assert(SVersion.TryParse(v.ToString(CSVersionFormat.Normalized)).Equals(v.ToNormalizedForm()));
                    Debug.Assert(SVersion.TryParse(v.ToString(CSVersionFormat.LongForm)).Equals(v.ToLongForm()));
                }
                finally
                {
                    _alreadyInCheck = false;
                }
            }
#endif
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Manages to return the normalized form of this version, whatever it is:
 /// first, on error, returns the <see cref="ErrorMessage"/>, then if <see cref="AsCSVersion"/> is not null
 /// the <see cref="CSVersion.ToString(CSVersionFormat, CIBuildDescriptor)"/> with <see cref="CSVersionFormat.Normalized"/> format
 /// or fallbacks to the <see cref="NormalizedText"/>.
 /// </summary>
 /// <returns>The normalized version string (always short form).</returns>
 public string ToNormalizedString() => ErrorMessage
 ?? _csVersion?.ToString(CSVersionFormat.Normalized)
 ?? NormalizedText !;
Ejemplo n.º 3
0
 /// <summary>
 /// Returns the <see cref="ErrorMessage"/> if not null or the <see cref="CSVersion.ToString(CSVersionFormat, CIBuildDescriptor)"/>
 /// with <see cref="CSVersionFormat.NuGetPackage"/> format if <see cref="AsCSVersion"/> is not null
 /// or the <see cref="NormalizedText"/>.
 /// </summary>
 /// <returns>The version to use for NuGet package.</returns>
 public string ToNuGetPackageString() => ErrorMessage
 ?? _csVersion?.ToString(CSVersionFormat.NuGetPackage)
 ?? NormalizedText;