Class ApiClient
Assembly: Aydsko.iRacingData.dll
Syntax
public class ApiClient : IDisposable, IApiClient
Constructors
ApiClient(IAuthenticatingHttpClient, iRacingDataClientOptions, ILogger<ApiClient>)
Declaration
public ApiClient(IAuthenticatingHttpClient httpClient, iRacingDataClientOptions options, ILogger<ApiClient> logger)
Parameters
Properties
HttpClient
Declaration
protected IAuthenticatingHttpClient HttpClient { get; }
Property Value
Logger
Declaration
protected ILogger<ApiClient> Logger { get; }
Property Value
Options
Declaration
protected iRacingDataClientOptions Options { get; }
Property Value
Methods
Declaration
protected DataResponse<TData> BuildDataResponse<TData>(HttpResponseHeaders headers, TData data, DateTimeOffset? expires = null)
Parameters
Returns
Type Parameters
BuildIntermediateResultAsync<TResult>(Uri, JsonTypeInfo<TResult>, CancellationToken)
Declaration
protected virtual Task<(TResult?, HttpResponseHeaders)> BuildIntermediateResultAsync<TResult>(Uri intermediateUri, JsonTypeInfo<TResult> jsonTypeInfo, CancellationToken cancellationToken)
Parameters
Returns
Type Parameters
CreateResponseFromChunksAsync<THeader, TChunkData>(Uri, bool, JsonTypeInfo<THeader>, Func<THeader, IChunkInfo>, JsonTypeInfo<TChunkData[]>, CancellationToken)
Declaration
public Task<DataResponse<(THeader, TChunkData[])>> CreateResponseFromChunksAsync<THeader, TChunkData>(Uri uri, bool isViaInfoLink, JsonTypeInfo<THeader> jsonTypeInfo, Func<THeader, IChunkInfo> getChunkDownloadDetail, JsonTypeInfo<TChunkData[]> chunkArrayTypeInfo, CancellationToken cancellationToken = default)
Parameters
Returns
Type Parameters
| Name |
Description |
| THeader |
|
| TChunkData |
|
CreateResponseViaIntermediateResultAsync<TIntermediate, TData>(Uri, JsonTypeInfo<TIntermediate>, Func<TIntermediate, (Uri DataLink, DateTimeOffset? Expires)>, JsonTypeInfo<TData>, CancellationToken)
Declaration
public Task<DataResponse<TData>> CreateResponseViaIntermediateResultAsync<TIntermediate, TData>(Uri intermediateUri, JsonTypeInfo<TIntermediate> intermediateJsonTypeInfo, Func<TIntermediate, (Uri DataLink, DateTimeOffset? Expires)> getDataLinkAndExpiry, JsonTypeInfo<TData> jsonTypeInfo, CancellationToken cancellationToken)
Parameters
Returns
Type Parameters
| Name |
Description |
| TIntermediate |
|
| TData |
|
Dispose()
Declaration
Dispose(bool)
Declaration
protected virtual void Dispose(bool disposing)
Parameters
| Type |
Name |
Description |
| bool |
disposing |
|
EncodePassword(string, string)
Declaration
protected static string EncodePassword(string username, string password)
Parameters
Returns
GetDataResponseAsync<TData>(Uri, JsonTypeInfo<TData>, CancellationToken)
Declaration
public Task<DataResponse<TData>> GetDataResponseAsync<TData>(Uri uri, JsonTypeInfo<TData> jsonTypeInfo, CancellationToken cancellationToken) where TData : class
Parameters
Returns
Type Parameters
Declaration
protected virtual Task<(TResult Result, HttpResponseHeaders Headers)> GetResponseWithHeadersFromJsonAsync<TResult>(Uri uri, JsonTypeInfo<TResult> jsonTypeInfo, CancellationToken cancellationToken, bool skipAuthentication = false) where TResult : class
Parameters
Returns
Type Parameters
GetUnauthenticatedRawResponseAsync(Uri, CancellationToken)
Declaration
public Task<HttpResponseMessage> GetUnauthenticatedRawResponseAsync(Uri uri, CancellationToken cancellationToken = default)
Parameters
Returns
GetUnauthenticatedResponseAsync<TData>(Uri, JsonTypeInfo<TData>, CancellationToken)
Declaration
public Task<TData> GetUnauthenticatedResponseAsync<TData>(Uri uri, JsonTypeInfo<TData> jsonTypeInfo, CancellationToken cancellationToken) where TData : class
Parameters
Returns
| Type |
Description |
| Task<TData> |
|
Type Parameters
HandleUnsuccessfulResponse(HttpResponseMessage, string, ILogger)
Declaration
protected virtual void HandleUnsuccessfulResponse(HttpResponseMessage httpResponse, string content, ILogger logger)
Parameters
UseUsernameAndPassword(string, string, bool)
Declaration
[Obsolete("Do not use. Configure via the \"AddIRacingDataApi\" extension method on the IServiceCollection which allows you to configure the \"iRacingDataClientOptions\".")]
public void UseUsernameAndPassword(string username, string password, bool passwordIsEncoded)
Parameters
Implements