using System; using System.Diagnostics.CodeAnalysis; using System.Net.Http; using System.Net.Http.Json; using System.Text.Json; using System.Text.Json.Serialization; using System.Text.Json.Serialization.Metadata; using System.Threading; using System.Threading.Tasks; namespace ProxyInterfaceConsumer.Http; public static class IHttpClientExtensions { #region PostAsJsonAsync public static Task PostAsJsonAsync( this IHttpClient client, [StringSyntax(StringSyntaxAttribute.Uri)] string? requestUri, TValue value, JsonSerializerOptions? options = null, CancellationToken cancellationToken = default ) { return client._Instance.PostAsJsonAsync(requestUri, value, options, cancellationToken); } public static Task PostAsJsonAsync( this IHttpClient client, Uri? requestUri, TValue value, JsonSerializerOptions? options = null, CancellationToken cancellationToken = default ) { return client._Instance.PostAsJsonAsync(requestUri, value, options, cancellationToken); } public static Task PostAsJsonAsync( this IHttpClient client, [StringSyntax(StringSyntaxAttribute.Uri)] string? requestUri, TValue value, CancellationToken cancellationToken ) { return client._Instance.PostAsJsonAsync( requestUri, value, options: null, cancellationToken ); } public static Task PostAsJsonAsync( this IHttpClient client, Uri? requestUri, TValue value, CancellationToken cancellationToken ) { return client._Instance.PostAsJsonAsync( requestUri, value, options: null, cancellationToken ); } public static Task PostAsJsonAsync( this IHttpClient client, [StringSyntax(StringSyntaxAttribute.Uri)] string? requestUri, TValue value, JsonTypeInfo jsonTypeInfo, CancellationToken cancellationToken = default ) { return client._Instance.PostAsJsonAsync(requestUri, value, jsonTypeInfo, cancellationToken); } public static Task PostAsJsonAsync( this IHttpClient client, Uri? requestUri, TValue value, JsonTypeInfo jsonTypeInfo, CancellationToken cancellationToken = default ) { return client._Instance.PostAsJsonAsync(requestUri, value, jsonTypeInfo, cancellationToken); } #endregion #region GetFromJsonAsync public static Task GetFromJsonAsync( this IHttpClient client, [StringSyntax(StringSyntaxAttribute.Uri)] string? requestUri, Type type, JsonSerializerOptions? options, CancellationToken cancellationToken = default ) { return client._Instance.GetFromJsonAsync(requestUri, type, options, cancellationToken); } public static Task GetFromJsonAsync( this IHttpClient client, Uri? requestUri, Type type, JsonSerializerOptions? options, CancellationToken cancellationToken = default ) { return client._Instance.GetFromJsonAsync(requestUri, type, options, cancellationToken); } public static Task GetFromJsonAsync( this IHttpClient client, [StringSyntax(StringSyntaxAttribute.Uri)] string? requestUri, JsonSerializerOptions? options, CancellationToken cancellationToken = default ) { return client._Instance.GetFromJsonAsync(requestUri, options, cancellationToken); } public static Task GetFromJsonAsync( this IHttpClient client, Uri? requestUri, JsonSerializerOptions? options, CancellationToken cancellationToken = default ) { return client._Instance.GetFromJsonAsync(requestUri, options, cancellationToken); } public static Task GetFromJsonAsync( this IHttpClient client, [StringSyntax(StringSyntaxAttribute.Uri)] string? requestUri, Type type, JsonSerializerContext context, CancellationToken cancellationToken = default ) { return client._Instance.GetFromJsonAsync(requestUri, type, context, cancellationToken); } public static Task GetFromJsonAsync( this IHttpClient client, Uri? requestUri, Type type, JsonSerializerContext context, CancellationToken cancellationToken = default ) { return client._Instance.GetFromJsonAsync(requestUri, type, context, cancellationToken); } public static Task GetFromJsonAsync( this IHttpClient client, [StringSyntax(StringSyntaxAttribute.Uri)] string? requestUri, JsonTypeInfo jsonTypeInfo, CancellationToken cancellationToken = default ) { return client._Instance.GetFromJsonAsync(requestUri, jsonTypeInfo, cancellationToken); } public static Task GetFromJsonAsync( this IHttpClient client, Uri? requestUri, JsonTypeInfo jsonTypeInfo, CancellationToken cancellationToken = default ) { return client._Instance.GetFromJsonAsync(requestUri, jsonTypeInfo, cancellationToken); } public static Task GetFromJsonAsync( this IHttpClient client, [StringSyntax(StringSyntaxAttribute.Uri)] string? requestUri, Type type, CancellationToken cancellationToken = default ) { return client._Instance.GetFromJsonAsync( requestUri, type, options: null, cancellationToken ); } public static Task GetFromJsonAsync( this IHttpClient client, Uri? requestUri, Type type, CancellationToken cancellationToken = default ) { return client._Instance.GetFromJsonAsync( requestUri, type, options: null, cancellationToken ); } public static Task GetFromJsonAsync( this IHttpClient client, [StringSyntax(StringSyntaxAttribute.Uri)] string? requestUri, CancellationToken cancellationToken = default ) { return client._Instance.GetFromJsonAsync(requestUri, cancellationToken); } public static Task GetFromJsonAsync( this IHttpClient client, Uri? requestUri, CancellationToken cancellationToken = default ) { return client._Instance.GetFromJsonAsync(requestUri, cancellationToken); } #endregion }