1
0
mirror of https://github.com/JKorf/CryptoExchange.Net synced 2026-04-13 00:22:22 +00:00
This commit is contained in:
Jkorf 2026-02-18 11:23:10 +01:00
parent 5651813ed0
commit f225f6ffb8

View File

@ -20,6 +20,7 @@ namespace CryptoExchange.Net.SharedApis
public string? FromId { get; set; } public string? FromId { get; set; }
public int? Offset { get; set; } public int? Offset { get; set; }
public int? Page { get; set; } public int? Page { get; set; }
public string? Cursor { get; set; }
} }
public class PageRequest public class PageRequest
{ {
@ -76,12 +77,13 @@ namespace CryptoExchange.Net.SharedApis
Direction = direction, Direction = direction,
FromId = paginationRequest?.FromId, FromId = paginationRequest?.FromId,
Offset = paginationRequest?.Offset, Offset = paginationRequest?.Offset,
Page = paginationRequest?.Page Page = paginationRequest?.Page,
Cursor = paginationRequest?.Cursor
}; };
} }
public static PageRequest? GetNextPageRequest( public static PageRequest? GetNextPageRequest(
Func<PageRequest> nextPageRequest, Func<PageRequest?> nextPageRequest,
int resultCount, int resultCount,
IEnumerable<DateTime> timestamps, IEnumerable<DateTime> timestamps,
DateTime? requestStartTime, DateTime? requestStartTime,
@ -95,10 +97,13 @@ namespace CryptoExchange.Net.SharedApis
if (HasNextPage(resultCount, timestamps, requestStartTime, requestEndTime, limit, direction)) if (HasNextPage(resultCount, timestamps, requestStartTime, requestEndTime, limit, direction))
{ {
var result = nextPageRequest(); var result = nextPageRequest();
if (result != null)
{
#warning correct? #warning correct?
result.StartTime ??= lastPaginationData.StartTime; result.StartTime ??= lastPaginationData.StartTime;
result.EndTime ??= lastPaginationData.EndTime; result.EndTime ??= lastPaginationData.EndTime;
return result; return result;
}
} }
if (maxTimespan != null) if (maxTimespan != null)
@ -153,7 +158,7 @@ namespace CryptoExchange.Net.SharedApis
} }
public static PageRequest NextPageFromOffset(PaginationParameters lastPaginationData, int resultCount) public static PageRequest NextPageFromOffset(PaginationParameters lastPaginationData, int resultCount)
{ {
return new PageRequest { Offset = lastPaginationData.Offset + resultCount }; return new PageRequest { Offset = (lastPaginationData.Offset ?? 0) + resultCount };
} }
public static PageRequest NextPageFromCursor(string nextCursor) public static PageRequest NextPageFromCursor(string nextCursor)
{ {