Refactoring, database structure changed
This commit is contained in:
28
WatchIt.DTO/Query/PagingQuery.cs
Normal file
28
WatchIt.DTO/Query/PagingQuery.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace WatchIt.DTO.Query;
|
||||
|
||||
public sealed record PagingQuery
|
||||
{
|
||||
[FromQuery(Name = "first")]
|
||||
public int? First { get; set; }
|
||||
|
||||
[FromQuery(Name = "after")]
|
||||
public int? After { get; set; }
|
||||
}
|
||||
|
||||
public static class PagingQueryExtensions
|
||||
{
|
||||
public static IQueryable<T> ApplyPaging<T>(this IQueryable<T> data, PagingQuery pagingQuery)
|
||||
{
|
||||
if (pagingQuery.After is not null)
|
||||
{
|
||||
data = data.Skip(pagingQuery.After.Value);
|
||||
}
|
||||
if (pagingQuery.First is not null)
|
||||
{
|
||||
data = data.Take(pagingQuery.First.Value);
|
||||
}
|
||||
return data;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user