From 6e5acbb275758ad17754dabd4575f27f40f9aec5 Mon Sep 17 00:00:00 2001 From: Haroon Date: Mon, 25 Nov 2013 10:04:08 +0000 Subject: [PATCH] using RequestParams base class --- Octokit/Clients/SearchClient.cs | 2 +- Octokit/Models/Request/SearchCodeRequest.cs | 37 +++++---------------- 2 files changed, 10 insertions(+), 29 deletions(-) diff --git a/Octokit/Clients/SearchClient.cs b/Octokit/Clients/SearchClient.cs index a55a84b3..d008c4a9 100644 --- a/Octokit/Clients/SearchClient.cs +++ b/Octokit/Clients/SearchClient.cs @@ -61,7 +61,7 @@ namespace Octokit public Task> SearchCode(SearchCodeRequest search) { Ensure.ArgumentNotNull(search, "search"); - return ApiConnection.GetAll("search/code".FormatUri(), search.Parameters); + return ApiConnection.GetAll("search/code".FormatUri(), search.ToParametersDictionary()); } } } \ No newline at end of file diff --git a/Octokit/Models/Request/SearchCodeRequest.cs b/Octokit/Models/Request/SearchCodeRequest.cs index fbb9554d..67cbe3d4 100644 --- a/Octokit/Models/Request/SearchCodeRequest.cs +++ b/Octokit/Models/Request/SearchCodeRequest.cs @@ -1,4 +1,5 @@ -using System; +using Octokit.Internal; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -10,19 +11,22 @@ namespace Octokit /// Searching Code/Files /// http://developer.github.com/v3/search/#search-code /// - public class SearchCodeRequest + public class SearchCodeRequest : RequestParameters { public SearchCodeRequest(string term) { + Ensure.ArgumentNotNullOrEmptyString(term, "term"); Term = term; Page = 1; PerPage = 100; + Order = SortDirection.Descending; } /// /// The search term /// - public string Term { get; set; } + [Parameter(Key = "q")] + public string Term { get; private set; } /// /// Optional Sort field. Can only be indexed, which indicates how recently a file has been indexed by the GitHub search infrastructure. If not provided, results are sorted by best match. @@ -32,7 +36,7 @@ namespace Octokit /// /// 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 @@ -42,30 +46,7 @@ namespace Octokit /// /// Number of items per page /// + [Parameter(Key = "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; - } - } } }