### Cursor-Based Pagination Example Source: https://github.com/gehnster/evestandard/blob/master/README.md This C# code demonstrates how to fetch paginated results using cursors. It shows the initial request and how to use 'after' and 'before' tokens for subsequent requests to navigate through pages. Ensure you have the EVE Standard library and authentication set up. ```csharp // First request - no cursor parameters var result = await eveClient.Corporation.GetCorporationProjectsAsync(auth, corporationId); var projects = result.Model; var cursor = result.Cursor; // Next page - use the "after" token if (cursor?.After != null) { var nextPage = await eveClient.Corporation.GetCorporationProjectsAsync( auth, corporationId, after: cursor.After); } // Previous page - use the "before" token if (cursor?.Before != null) { var prevPage = await eveClient.Corporation.GetCorporationProjectsAsync( auth, corporationId, before: cursor.Before); } ``` -------------------------------- ### Page-Based Pagination Example Source: https://github.com/gehnster/evestandard/blob/master/README.md Demonstrates how to use page-based pagination for ESI endpoints. Access the total number of pages via the MaxPages property and retrieve the model data. ```csharp var result = await eveClient.Corporation.GetCorporationShareholdersAsync(auth, corporationId, page: 1); int totalPages = result.MaxPages; var shareholders = result.Model; ``` -------------------------------- ### C# Example: GetCharacterAssetsV3Async Source: https://github.com/gehnster/evestandard/blob/master/AddingNewAPI.md This C# method demonstrates how to implement a new API endpoint, including authentication checks, query parameter handling, API calls, and response validation. It's suitable for methods requiring OAuth scopes and custom query parameters. ```C# public async Task>> GetCharacterAssetsV3Async(AuthDTO auth, int page = 1, string ifNoneMatch = null) { CheckAuth(auth, Scopes.ESI_ASSETS_READ_ASSETS_1); var queryParameters = new Dictionary { { "page", page.ToString() } }; var responseModel = await GetAsync($"/v3/characters/{auth.CharacterId}/assets/", auth, ifNoneMatch, queryParameters); CheckResponse(nameof(GetCharacterAssetsV3Async), responseModel.Error, responseModel.Message, responseModel.LegacyWarning, logger); return ReturnModelDTO>(responseModel); } ``` -------------------------------- ### Accessing Rate Limit Information Source: https://github.com/gehnster/evestandard/blob/master/README.md Retrieve rate limiting details from an ESI API response. This includes the rate limit group, configuration, remaining tokens, tokens used, and retry-after information. ```csharp var result = await eveClient.Universe.GetUniverseTypes(); // Rate limiting information string rateLimitGroup = result.RateLimitGroup; // e.g., "universe-types" string rateLimitConfig = result.RateLimitLimit; // e.g., "150/15m" int requestsRemaining = result.RateLimitRemaining; // tokens left in bucket int tokensUsed = result.RateLimitUsed; // tokens consumed by this request int retryAfter = result.RetryAfter; // seconds to wait (only set in 429 responses) ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.