This commit is contained in:
@@ -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;
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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>();
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user