Skip to content

Instantly share code, notes, and snippets.

@AndyButland
Created May 21, 2023 13:13
Show Gist options
  • Save AndyButland/5a52b99ef7c83805c77d2e6be7c1264f to your computer and use it in GitHub Desktop.
Save AndyButland/5a52b99ef7c83805c77d2e6be7c1264f to your computer and use it in GitHub Desktop.
private static void ApplyOrderBy(SearchOptions options, PackageSearchQuery query)
{
switch (query.OrderBy)
{
case PackageSearchOrderBy.Alphabetical:
options.OrderBy.Add(nameof(PackageModel.Title));
break;
case PackageSearchOrderBy.ReverseAlphabetical:
options.OrderBy.Add($"{nameof(PackageModel.Title)} desc");
break;
case PackageSearchOrderBy.MostRecentlyCreated:
options.OrderBy.Add($"{nameof(PackageModel.CreatedOn)} desc");
break;
case PackageSearchOrderBy.MostRecentlyModified:
options.OrderBy.Add($"{nameof(PackageModel.LastPublishedOn)} desc");
break;
case PackageSearchOrderBy.MostDownloads:
options.OrderBy.Add($"{nameof(PackageModel.NumberOfNuGetDownloads)} desc");
break;
case PackageSearchOrderBy.MostActiveInstalls:
options.OrderBy.Add($"{nameof(PackageModel.NumberOfActiveInstalls)} desc");
break;
case PackageSearchOrderBy.RelevanceToSearchText:
// Order from the default registered scoring profile will be used, as defined in CreateIndex().
break;
default:
throw new ArgumentOutOfRangeException(nameof(query.OrderBy));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment