1
0
mirror of https://github.com/JKorf/CryptoExchange.Net synced 2026-02-16 14:13:46 +00:00
This commit is contained in:
JKorf 2026-02-15 17:49:33 +01:00
parent d4965ad68d
commit 2281b8d7b3
2 changed files with 30 additions and 2 deletions

View File

@ -351,6 +351,7 @@ namespace CryptoExchange.Net
return data;
}
public static bool CheckForNextPage(
int resultCount,
IEnumerable<DateTime> timestamps,
@ -359,7 +360,7 @@ namespace CryptoExchange.Net
int limit,
DataDirection paginationDirection)
{
if (resultCount < limit)
if (limit <= resultCount)
return false;
if (!timestamps.Any())
@ -385,7 +386,8 @@ namespace CryptoExchange.Net
{
FromId,
Time,
Offset
Offset,
Page
}
public enum TimeParameterSetType
@ -410,6 +412,14 @@ namespace CryptoExchange.Net
return new PaginationParameters { FromId = pageRequest.FromId };
}
public static PaginationParameters ApplyPageFilter(PageRequest? pageRequest)
{
if (pageRequest?.Page == null || pageRequest.Page == 0)
return new PaginationParameters() { Page = 1 };
return new PaginationParameters { Page = pageRequest.Page };
}
public static PaginationParameters ApplyOffsetFilter(PageRequest pageRequest)
{
if (pageRequest.Offset == null)
@ -440,6 +450,20 @@ namespace CryptoExchange.Net
};
}
// Without date/time filter
public static PageRequest? GetNextPageRequestPageSimple(
PageRequest? currentPageRequest,
bool hasNextPage,
IEnumerable<DateTime> timeSelector,
DateTime? requestStartTime,
DateTime? requestEndTime
)
{
if (CheckForNextPage(timeSelector, requestStartTime, requestEndTime, limit, direction))
{
}
}
public static PageRequest? GetNextPageRequest(
Func<PageRequest> normalNextPageCallback,
int responseLength,
@ -539,6 +563,9 @@ namespace CryptoExchange.Net
return result;
}
if (filterType == PaginationFilterType.Page)
return ApplyPageFilter(pageRequest);
if (filterType == PaginationFilterType.FromId)
// From id doesn't need any other parameters
return ApplyFromIdFilter(pageRequest);

View File

@ -18,6 +18,7 @@ namespace CryptoExchange.Net.SharedApis
public DateTime? EndTime { get; set; }
public string? FromId { get; set; }
public int? Offset { get; set; }
public int? Page { get; set; }
}
public class PageRequest
{