NuGetGallery.FunctionalTests.ODataHelper.GetTimestampOfPackageFromResponse C# (CSharp) Method

GetTimestampOfPackageFromResponse() public method

public GetTimestampOfPackageFromResponse ( string url, string propertyName, string packageId, string version = "1.0.0" ) : Task
url string
propertyName string
packageId string
version string
return Task
        public async Task<DateTime?> GetTimestampOfPackageFromResponse(string url, string propertyName, string packageId, string version = "1.0.0")
        {
            WriteLine($"Getting '{propertyName}' timestamp of package '{packageId}' with version '{version}'.");

            var packageResponse = await GetPackageDataInResponse(url, packageId, version);
            if (string.IsNullOrEmpty(packageResponse))
            {
                return null;
            }

            var timestampStartTag = "<d:" + propertyName + " m:type=\"Edm.DateTime\">";
            var timestampEndTag = "</d:" + propertyName + ">";

            var timestampTagIndex = packageResponse.IndexOf(timestampStartTag);
            if (timestampTagIndex < 0)
            {
                WriteLine($"Package data does not contain '{propertyName}' timestamp!");
                return null;
            }

            var timestampStartIndex = timestampTagIndex + timestampStartTag.Length;
            var timestampLength = packageResponse.Substring(timestampStartIndex).IndexOf(timestampEndTag);

            var timestamp =
                DateTime.Parse(packageResponse.Substring(timestampStartIndex, timestampLength));
            WriteLine($"'{propertyName}' timestamp of package '{packageId}' with version '{version}' is '{timestamp}'");
            return timestamp;
        }