This commit is contained in:
2020-01-13 22:20:46 +00:00
parent 40906ecabb
commit 45b1cba18b
7 changed files with 20 additions and 20 deletions

View File

@@ -4,7 +4,7 @@ using Microsoft.AspNetCore.Mvc;
namespace AyaNova.Api.ControllerHelpers namespace AyaNova.Api.ControllerHelpers
{ {
public sealed class PagingOptions public sealed class ListOptions
{ {
public const int MaxPageSize = 1000; public const int MaxPageSize = 1000;
public const int DefaultOffset = 0; public const int DefaultOffset = 0;

View File

@@ -12,10 +12,10 @@ namespace AyaNova.Api.ControllerHelpers
public Uri LastPage { get; private set; } public Uri LastPage { get; private set; }
public Uri NextPage { get; private set; } public Uri NextPage { get; private set; }
public Uri PreviousPage { get; private set; } public Uri PreviousPage { get; private set; }
public PagingOptions PagingOptions { get; } public ListOptions PagingOptions { get; }
public long TotalRecordCount { get; } public long TotalRecordCount { get; }
public PaginationLinkBuilder(IUrlHelper urlHelper, string routeName, object routeValues, PagingOptions pagingOptions, long totalRecordCount) public PaginationLinkBuilder(IUrlHelper urlHelper, string routeName, object routeValues, ListOptions pagingOptions, long totalRecordCount)
{ {
PagingOptions = pagingOptions; PagingOptions = pagingOptions;
TotalRecordCount = totalRecordCount; TotalRecordCount = totalRecordCount;

View File

@@ -125,7 +125,7 @@ namespace AyaNova.Api.Controllers
/// </summary> /// </summary>
/// <returns>Paged collection of Users with paging data</returns> /// <returns>Paged collection of Users with paging data</returns>
[HttpGet("ListUsers", Name = nameof(ListUsers))]//We MUST have a "Name" defined or we can't get the link for the pagination, non paged urls don't need a name [HttpGet("ListUsers", Name = nameof(ListUsers))]//We MUST have a "Name" defined or we can't get the link for the pagination, non paged urls don't need a name
public async Task<IActionResult> ListUsers([FromQuery] PagingOptions pagingOptions) public async Task<IActionResult> ListUsers([FromQuery] ListOptions pagingOptions)
{ {
if (serverState.IsClosed) if (serverState.IsClosed)
@@ -163,7 +163,7 @@ namespace AyaNova.Api.Controllers
/// <param name="pagingOptions">Paging, filtering and sorting options</param> /// <param name="pagingOptions">Paging, filtering and sorting options</param>
/// <returns>Paged id/name collection with paging data</returns> /// <returns>Paged id/name collection with paging data</returns>
[HttpGet("PickList", Name = nameof(UserPickList))] [HttpGet("PickList", Name = nameof(UserPickList))]
public ActionResult UserPickList([FromQuery] PagingOptions pagingOptions) public ActionResult UserPickList([FromQuery] ListOptions pagingOptions)
{ {
if (serverState.IsClosed) if (serverState.IsClosed)
{ {

View File

@@ -118,7 +118,7 @@ namespace AyaNova.Api.Controllers
/// </summary> /// </summary>
/// <returns>Paged collection of widgets with paging data</returns> /// <returns>Paged collection of widgets with paging data</returns>
[HttpGet("ListWidgets", Name = nameof(ListWidgets))]//We MUST have a "Name" defined or we can't get the link for the pagination, non paged urls don't need a name [HttpGet("ListWidgets", Name = nameof(ListWidgets))]//We MUST have a "Name" defined or we can't get the link for the pagination, non paged urls don't need a name
public async Task<IActionResult> ListWidgets([FromQuery] PagingOptions pagingOptions) public async Task<IActionResult> ListWidgets([FromQuery] ListOptions pagingOptions)
{ {
if (serverState.IsClosed) if (serverState.IsClosed)
return StatusCode(503, new ApiErrorResponse(ApiErrorCode.API_CLOSED, null, serverState.Reason)); return StatusCode(503, new ApiErrorResponse(ApiErrorCode.API_CLOSED, null, serverState.Reason));
@@ -147,7 +147,7 @@ namespace AyaNova.Api.Controllers
/// <param name="pagingOptions">Paging, filtering and sorting options</param> /// <param name="pagingOptions">Paging, filtering and sorting options</param>
/// <returns>Paged id/name collection with paging data</returns> /// <returns>Paged id/name collection with paging data</returns>
[HttpGet("PickList", Name = nameof(WidgetPickList))] [HttpGet("PickList", Name = nameof(WidgetPickList))]
public ActionResult WidgetPickList([FromQuery] PagingOptions pagingOptions) public ActionResult WidgetPickList([FromQuery] ListOptions pagingOptions)
{ {
if (serverState.IsClosed) if (serverState.IsClosed)
return StatusCode(503, new ApiErrorResponse(ApiErrorCode.API_CLOSED, null, serverState.Reason)); return StatusCode(503, new ApiErrorResponse(ApiErrorCode.API_CLOSED, null, serverState.Reason));

View File

@@ -10,7 +10,7 @@ namespace AyaNova.Biz
internal static class PickListFetcher internal static class PickListFetcher
{ {
internal static PickListResult GetPickList(AyContext ct, long userId, PagingOptions pagingOptions, FilterOptions filterOptions, string tableName) internal static PickListResult GetPickList(AyContext ct, long userId, ListOptions pagingOptions, FilterOptions filterOptions, string tableName)
{ {
List<NameIdItem> listItems = new List<NameIdItem>(); List<NameIdItem> listItems = new List<NameIdItem>();

View File

@@ -174,11 +174,11 @@ namespace AyaNova.Biz
//get many (paged) //get many (paged)
internal async Task<ApiPagedResponse<System.Object>> GetManyAsync(IUrlHelper Url, string routeName, PagingOptions pagingOptions) internal async Task<ApiPagedResponse<System.Object>> GetManyAsync(IUrlHelper Url, string routeName, ListOptions pagingOptions)
{ {
pagingOptions.Offset = pagingOptions.Offset ?? PagingOptions.DefaultOffset; pagingOptions.Offset = pagingOptions.Offset ?? ListOptions.DefaultOffset;
pagingOptions.Limit = pagingOptions.Limit ?? PagingOptions.DefaultLimit; pagingOptions.Limit = pagingOptions.Limit ?? ListOptions.DefaultLimit;
//BUILD THE QUERY //BUILD THE QUERY
@@ -246,10 +246,10 @@ namespace AyaNova.Biz
//get picklist (paged) //get picklist (paged)
internal ApiPagedResponse<NameIdItem> GetPickList(IUrlHelper Url, string routeName, PagingOptions pagingOptions) internal ApiPagedResponse<NameIdItem> GetPickList(IUrlHelper Url, string routeName, ListOptions pagingOptions)
{ {
pagingOptions.Offset = pagingOptions.Offset ?? PagingOptions.DefaultOffset; pagingOptions.Offset = pagingOptions.Offset ?? ListOptions.DefaultOffset;
pagingOptions.Limit = pagingOptions.Limit ?? PagingOptions.DefaultLimit; pagingOptions.Limit = pagingOptions.Limit ?? ListOptions.DefaultLimit;
var ret = PickListFetcher.GetPickList(ct, UserId, pagingOptions, FilterOptions(), "auser"); var ret = PickListFetcher.GetPickList(ct, UserId, pagingOptions, FilterOptions(), "auser");

View File

@@ -288,10 +288,10 @@ namespace AyaNova.Biz
} }
//get many (paged) //get many (paged)
internal async Task<ApiPagedResponse<Widget>> GetManyAsync(IUrlHelper Url, string routeName, PagingOptions pagingOptions) internal async Task<ApiPagedResponse<Widget>> GetManyAsync(IUrlHelper Url, string routeName, ListOptions pagingOptions)
{ {
pagingOptions.Offset = pagingOptions.Offset ?? PagingOptions.DefaultOffset; pagingOptions.Offset = pagingOptions.Offset ?? ListOptions.DefaultOffset;
pagingOptions.Limit = pagingOptions.Limit ?? PagingOptions.DefaultLimit; pagingOptions.Limit = pagingOptions.Limit ?? ListOptions.DefaultLimit;
//BUILD THE QUERY //BUILD THE QUERY
//base query //base query
@@ -344,10 +344,10 @@ namespace AyaNova.Biz
/// <param name="routeName"></param> /// <param name="routeName"></param>
/// <param name="pagingOptions"></param> /// <param name="pagingOptions"></param>
/// <returns></returns> /// <returns></returns>
internal ApiPagedResponse<NameIdItem> GetPickList(IUrlHelper Url, string routeName, PagingOptions pagingOptions) internal ApiPagedResponse<NameIdItem> GetPickList(IUrlHelper Url, string routeName, ListOptions pagingOptions)
{ {
pagingOptions.Offset = pagingOptions.Offset ?? PagingOptions.DefaultOffset; pagingOptions.Offset = pagingOptions.Offset ?? ListOptions.DefaultOffset;
pagingOptions.Limit = pagingOptions.Limit ?? PagingOptions.DefaultLimit; pagingOptions.Limit = pagingOptions.Limit ?? ListOptions.DefaultLimit;
var ret = PickListFetcher.GetPickList(ct, UserId, pagingOptions, FilterOptions(), "awidget"); var ret = PickListFetcher.GetPickList(ct, UserId, pagingOptions, FilterOptions(), "awidget");
var pageLinks = new PaginationLinkBuilder(Url, routeName, null, pagingOptions, ret.TotalRecordCount).PagingLinksObject(); var pageLinks = new PaginationLinkBuilder(Url, routeName, null, pagingOptions, ret.TotalRecordCount).PagingLinksObject();
ApiPagedResponse<NameIdItem> pr = new ApiPagedResponse<NameIdItem>(ret.Items, pageLinks); ApiPagedResponse<NameIdItem> pr = new ApiPagedResponse<NameIdItem>(ret.Items, pageLinks);