From 2b9f83b876fb475385f36042c7fdfbbdea8522d9 Mon Sep 17 00:00:00 2001 From: Brendan Forster Date: Thu, 19 Mar 2015 16:07:33 +0930 Subject: [PATCH] add ApiOptions to support tailoring the response details --- Octokit/Models/Request/ApiOptions.cs | 62 ++++++++++++++++++++++++++++ Octokit/Octokit-Mono.csproj | 1 + Octokit/Octokit-MonoAndroid.csproj | 1 + Octokit/Octokit-Monotouch.csproj | 1 + Octokit/Octokit-Portable.csproj | 1 + Octokit/Octokit-netcore45.csproj | 1 + Octokit/Octokit.csproj | 1 + 7 files changed, 68 insertions(+) create mode 100644 Octokit/Models/Request/ApiOptions.cs diff --git a/Octokit/Models/Request/ApiOptions.cs b/Octokit/Models/Request/ApiOptions.cs new file mode 100644 index 00000000..ef149633 --- /dev/null +++ b/Octokit/Models/Request/ApiOptions.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; + +namespace Octokit +{ + [DebuggerDisplay("{DebuggerDisplay,nq}")] + public class ApiOptions + { + public static ApiOptions None + { + get { return new ApiOptions(); } + } + + /// + /// Specify the start page for pagination actions + /// + /// + /// Page numbering is 1-based on the server + /// + public int? StartPage { get; set; } + + /// + /// Specify the number of pages to return + /// + public int? PageCount { get; set; } + + /// + /// Specify the number of results to return for each page + /// + /// + /// Results returned may be less than this total if you reach the final page of results + /// + public int? PageSize { get; set; } + + internal string DebuggerDisplay + { + get + { + var values = new List(); + + if (StartPage.HasValue) + { + values.Add("StartPage: " + StartPage.Value); + } + + if (PageCount.HasValue) + { + values.Add("PageCount: " + PageCount.Value); + } + + if (PageSize.HasValue) + { + values.Add("PageSize: " + PageSize.Value); + } + + return String.Join(", ", values); + } + } + } + +} diff --git a/Octokit/Octokit-Mono.csproj b/Octokit/Octokit-Mono.csproj index cf4adab8..c518b97d 100644 --- a/Octokit/Octokit-Mono.csproj +++ b/Octokit/Octokit-Mono.csproj @@ -447,6 +447,7 @@ + \ No newline at end of file diff --git a/Octokit/Octokit-MonoAndroid.csproj b/Octokit/Octokit-MonoAndroid.csproj index ca3641e9..904a34c0 100644 --- a/Octokit/Octokit-MonoAndroid.csproj +++ b/Octokit/Octokit-MonoAndroid.csproj @@ -455,6 +455,7 @@ + \ No newline at end of file diff --git a/Octokit/Octokit-Monotouch.csproj b/Octokit/Octokit-Monotouch.csproj index 9b911c87..9816e046 100644 --- a/Octokit/Octokit-Monotouch.csproj +++ b/Octokit/Octokit-Monotouch.csproj @@ -451,6 +451,7 @@ + diff --git a/Octokit/Octokit-Portable.csproj b/Octokit/Octokit-Portable.csproj index 54301735..f2faa095 100644 --- a/Octokit/Octokit-Portable.csproj +++ b/Octokit/Octokit-Portable.csproj @@ -444,6 +444,7 @@ + diff --git a/Octokit/Octokit-netcore45.csproj b/Octokit/Octokit-netcore45.csproj index 47276432..2a4d4aa8 100644 --- a/Octokit/Octokit-netcore45.csproj +++ b/Octokit/Octokit-netcore45.csproj @@ -451,6 +451,7 @@ + diff --git a/Octokit/Octokit.csproj b/Octokit/Octokit.csproj index d293cab7..22536261 100644 --- a/Octokit/Octokit.csproj +++ b/Octokit/Octokit.csproj @@ -110,6 +110,7 @@ +