diff --git a/Octokit/Clients/SearchClient.cs b/Octokit/Clients/SearchClient.cs index d008c4a9..9fae32ae 100644 --- a/Octokit/Clients/SearchClient.cs +++ b/Octokit/Clients/SearchClient.cs @@ -49,7 +49,7 @@ namespace Octokit public Task> SearchIssues(SearchIssuesRequest search) { Ensure.ArgumentNotNull(search, "search"); - return ApiConnection.GetAll("search/issues".FormatUri(), search.Parameters); + return ApiConnection.GetAll("search/issues".FormatUri(), search.ToParametersDictionary()); } /// diff --git a/Octokit/Models/Request/SearchIssuesRequest.cs b/Octokit/Models/Request/SearchIssuesRequest.cs index f5fff642..b9b16097 100644 --- a/Octokit/Models/Request/SearchIssuesRequest.cs +++ b/Octokit/Models/Request/SearchIssuesRequest.cs @@ -1,4 +1,5 @@ -using System; +using Octokit.Internal; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -9,31 +10,34 @@ namespace Octokit /// /// Searching Issues /// - public class SearchIssuesRequest + public class SearchIssuesRequest : RequestParameters { public SearchIssuesRequest(string term) { + Ensure.ArgumentNotNullOrEmptyString(term,"term"); Term = term; Page = 1; PerPage = 100; + Order = SortDirection.Descending; } /// /// The search terms. This can be any combination of the supported repository search parameters: /// http://developer.github.com/v3/search/#search-code /// + [Parameter(Key= "q")] public string Term { get; set; } /// /// For http://developer.github.com/v3/search/#search-issues /// Optional Sort field. One of comments, created, or updated. If not provided, results are sorted by best match. /// - public string Sort { get; set; } + //public string Sort { get; set; } //re-add laters /// /// Optional Sort order if sort parameter is provided. One of asc or desc; the default is desc. /// - public SortDirection? Order { get; set; } + public SortDirection Order { get; set; } /// /// Page of paginated results @@ -44,29 +48,5 @@ namespace Octokit /// Number of items per page /// public int PerPage { get; set; } - - /// - /// get the params in the correct format... - /// - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.Int32.ToString")] - public System.Collections.Generic.IDictionary Parameters - { - get - { - var d = new System.Collections.Generic.Dictionary(); - d.Add("q", Term); - d.Add("page", Page.ToString()); - d.Add("per_page ", PerPage.ToString()); - - if (Sort.IsNotBlank()) //only add if not blank - d.Add("sort", Sort); - - if (Order.HasValue) - d.Add("order", Order.Value.ToString()); - - return d; - } - } } }