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
{
public sealed class PagingOptions
public sealed class ListOptions
{
public const int MaxPageSize = 1000;
public const int DefaultOffset = 0;

View File

@@ -12,10 +12,10 @@ namespace AyaNova.Api.ControllerHelpers
public Uri LastPage { get; private set; }
public Uri NextPage { get; private set; }
public Uri PreviousPage { get; private set; }
public PagingOptions PagingOptions { get; }
public ListOptions PagingOptions { 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;
TotalRecordCount = totalRecordCount;

View File

@@ -125,7 +125,7 @@ namespace AyaNova.Api.Controllers
/// </summary>
/// <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
public async Task<IActionResult> ListUsers([FromQuery] PagingOptions pagingOptions)
public async Task<IActionResult> ListUsers([FromQuery] ListOptions pagingOptions)
{
if (serverState.IsClosed)
@@ -163,7 +163,7 @@ namespace AyaNova.Api.Controllers
/// <param name="pagingOptions">Paging, filtering and sorting options</param>
/// <returns>Paged id/name collection with paging data</returns>
[HttpGet("PickList", Name = nameof(UserPickList))]
public ActionResult UserPickList([FromQuery] PagingOptions pagingOptions)
public ActionResult UserPickList([FromQuery] ListOptions pagingOptions)
{
if (serverState.IsClosed)
{

View File

@@ -118,7 +118,7 @@ namespace AyaNova.Api.Controllers
/// </summary>
/// <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
public async Task<IActionResult> ListWidgets([FromQuery] PagingOptions pagingOptions)
public async Task<IActionResult> ListWidgets([FromQuery] ListOptions pagingOptions)
{
if (serverState.IsClosed)
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>
/// <returns>Paged id/name collection with paging data</returns>
[HttpGet("PickList", Name = nameof(WidgetPickList))]
public ActionResult WidgetPickList([FromQuery] PagingOptions pagingOptions)
public ActionResult WidgetPickList([FromQuery] ListOptions pagingOptions)
{
if (serverState.IsClosed)
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 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>();

View File

@@ -174,11 +174,11 @@ namespace AyaNova.Biz
//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.Limit = pagingOptions.Limit ?? PagingOptions.DefaultLimit;
pagingOptions.Offset = pagingOptions.Offset ?? ListOptions.DefaultOffset;
pagingOptions.Limit = pagingOptions.Limit ?? ListOptions.DefaultLimit;
//BUILD THE QUERY
@@ -246,10 +246,10 @@ namespace AyaNova.Biz
//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.Limit = pagingOptions.Limit ?? PagingOptions.DefaultLimit;
pagingOptions.Offset = pagingOptions.Offset ?? ListOptions.DefaultOffset;
pagingOptions.Limit = pagingOptions.Limit ?? ListOptions.DefaultLimit;
var ret = PickListFetcher.GetPickList(ct, UserId, pagingOptions, FilterOptions(), "auser");

View File

@@ -288,10 +288,10 @@ namespace AyaNova.Biz
}
//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.Limit = pagingOptions.Limit ?? PagingOptions.DefaultLimit;
pagingOptions.Offset = pagingOptions.Offset ?? ListOptions.DefaultOffset;
pagingOptions.Limit = pagingOptions.Limit ?? ListOptions.DefaultLimit;
//BUILD THE QUERY
//base query
@@ -344,10 +344,10 @@ namespace AyaNova.Biz
/// <param name="routeName"></param>
/// <param name="pagingOptions"></param>
/// <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.Limit = pagingOptions.Limit ?? PagingOptions.DefaultLimit;
pagingOptions.Offset = pagingOptions.Offset ?? ListOptions.DefaultOffset;
pagingOptions.Limit = pagingOptions.Limit ?? ListOptions.DefaultLimit;
var ret = PickListFetcher.GetPickList(ct, UserId, pagingOptions, FilterOptions(), "awidget");
var pageLinks = new PaginationLinkBuilder(Url, routeName, null, pagingOptions, ret.TotalRecordCount).PagingLinksObject();
ApiPagedResponse<NameIdItem> pr = new ApiPagedResponse<NameIdItem>(ret.Items, pageLinks);