public override async Task <IEnumerable <ServerPackageMetadata> > Search(string searchTerm, SearchFilter filters, int skip, int take, CancellationToken cancellationToken) { List <ServerPackageMetadata> results = new List <ServerPackageMetadata>(); var searchResultJsonObjects = await _searchResource.Search(searchTerm, filters, skip, take, cancellationToken); foreach (JObject package in searchResultJsonObjects) { // TODO: verify this parsing is needed string id = package.Value <string>(Properties.PackageId); NuGetVersion version = NuGetVersion.Parse(package.Value <string>(Properties.Version)); PackageIdentity topPackage = new PackageIdentity(id, version); Uri iconUrl = GetUri(package, Properties.IconUrl); string summary = package.Value <string>(Properties.Summary); if (string.IsNullOrWhiteSpace(summary)) { // summary is empty. Use its description instead. summary = package.Value <string>(Properties.Description); } // retrieve metadata for the top package results.Add(PackageMetadataParser.ParseMetadata(package)); } return(results); }
/// <summary> /// Basic search /// </summary> public override async Task <IEnumerable <SimpleSearchMetadata> > Search(string searchTerm, SearchFilter filters, int skip, int take, CancellationToken cancellationToken) { var results = new List <SimpleSearchMetadata>(); foreach (var result in await _rawSearch.Search(searchTerm, filters, skip, take, cancellationToken)) { var version = NuGetVersion.Parse(result["version"].ToString()); var identity = new PackageIdentity(result["id"].ToString(), version); var description = result["description"].ToString(); var allVersions = new List <NuGetVersion>(); foreach (var versionObj in ((JArray)result["versions"])) { allVersions.Add(NuGetVersion.Parse(versionObj["version"].ToString())); } var data = new SimpleSearchMetadata(identity, description, allVersions); results.Add(data); } return(results); }