31 lines
1.0 KiB
C#
31 lines
1.0 KiB
C#
using LCU.Library.Internal.DispatcherModels.Models.Results;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
namespace LCU.Library.Internal.DispatcherModels.Models;
|
|
|
|
public class PagedResponse<T> where T : class
|
|
{
|
|
public PagedResponse() { }
|
|
public PagedResponse(PagedResult<T> pagedResult, Filter filter)
|
|
{
|
|
TotalItems = pagedResult.Total;
|
|
Items = pagedResult.Items;
|
|
TotalPages = pagedResult.Total == 0 ? 1 : (int)Math.Ceiling((decimal)pagedResult.Total / filter.Limit);
|
|
CurrentPage = filter.Page > this.TotalPages ? this.TotalPages : filter.Page;
|
|
|
|
if (pagedResult.Total > (filter.Page * filter.Limit))
|
|
{
|
|
NextPage = filter.Page + 1;
|
|
}
|
|
if (filter.Page > 1)
|
|
{
|
|
PreviousPage = filter.Page - 1;
|
|
}
|
|
}
|
|
public IEnumerable<T> Items { get; set; }
|
|
public int NextPage { get; set; }
|
|
public int PreviousPage { get; set; }
|
|
public int TotalItems { get; set; }
|
|
public int CurrentPage { get; set; }
|
|
public int TotalPages { get; set; }
|
|
} |