public static IReadOnlyCollection <SearchResultPackage> Deserialize(string json) { var options = new JsonSerializerOptions { Converters = { new AuthorsConverter() }, AllowTrailingCommas = true, PropertyNamingPolicy = JsonNamingPolicy.CamelCase }; var deserialized = JsonSerializer.Deserialize <NugetSearchApiContainerSerializable>(json, options); var resultPackages = new List <SearchResultPackage>(); foreach (var deserializedPackage in deserialized.Data) { var versions = deserializedPackage.Versions.Select(v => new SearchResultPackageVersion(v.Version, v.Downloads)) .ToArray(); string[] authors = deserializedPackage?.Authors?.Authors ?? Array.Empty <string>(); var searchResultPackage = new SearchResultPackage(new PackageId(deserializedPackage.Id), deserializedPackage.Version, deserializedPackage.Description, deserializedPackage.Summary, deserializedPackage.Tags, authors, deserializedPackage.TotalDownloads, deserializedPackage.Verified, versions); resultPackages.Add(searchResultPackage); } return(resultPackages); }
public SearchResultPrinterTests() { _reporter = new BufferedReporter(); _searchResultPrinter = new SearchResultPrinter(_reporter); _filledSearchResultPackage = new SearchResultPackage( new PackageId("my.tool"), "1.0.0", "my tool description", "my tool summary", new List <string> { "tag1", "tag2" }, new List <string> { "author1", "author2" }, 10, true, new List <SearchResultPackageVersion> { new SearchResultPackageVersion("1.0.0", 10) }); _mostEmptyToCheckNullException = new SearchResultPackage( new PackageId("my.tool"), "1.0.0", null, null, new List <string>(), new List <string> { "author1", "author2" }, 1244, true, new List <SearchResultPackageVersion> { new SearchResultPackageVersion("1.0.0", 10), new SearchResultPackageVersion("0.9.0", 1234) }); }