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