Enable explicit nullable definition for Core

This commit is contained in:
2024-10-31 13:01:54 +01:00
parent 25c8e9b5b0
commit eadd35ac09
9 changed files with 27 additions and 26 deletions

View File

@@ -50,6 +50,6 @@ namespace AMWD.Net.Api.Cloudflare
/// <summary>
/// Gets or sets the proxy information.
/// </summary>
public virtual IWebProxy Proxy { get; set; }
public virtual IWebProxy? Proxy { get; set; }
}
}

View File

@@ -4,6 +4,7 @@
<TargetFrameworks>netstandard2.0;net6.0</TargetFrameworks>
<NrtRevisionFormat>{semvertag:main}{!:-dev}</NrtRevisionFormat>
<Nullable>enable</Nullable>
<AppendTargetFrameworkToOutputPath>true</AppendTargetFrameworkToOutputPath>
<CopyRefAssembliesToPublishDirectory>false</CopyRefAssembliesToPublishDirectory>

View File

@@ -37,7 +37,7 @@ namespace AMWD.Net.Api.Cloudflare
/// <param name="emailAddress">The email address of the Cloudflare account.</param>
/// <param name="apiKey">The API key of the Cloudflare account.</param>
/// <param name="clientOptions">The client options (optional).</param>
public CloudflareClient(string emailAddress, string apiKey, ClientOptions clientOptions = null)
public CloudflareClient(string emailAddress, string apiKey, ClientOptions? clientOptions = null)
: this(new ApiKeyAuthentication(emailAddress, apiKey), clientOptions)
{ }
@@ -46,7 +46,7 @@ namespace AMWD.Net.Api.Cloudflare
/// </summary>
/// <param name="apiToken">The API token.</param>
/// <param name="clientOptions">The client options (optional).</param>
public CloudflareClient(string apiToken, ClientOptions clientOptions = null)
public CloudflareClient(string apiToken, ClientOptions? clientOptions = null)
: this(new ApiTokenAuthentication(apiToken), clientOptions)
{ }
@@ -55,7 +55,7 @@ namespace AMWD.Net.Api.Cloudflare
/// </summary>
/// <param name="authentication">The authentication information.</param>
/// <param name="clientOptions">The client options (optional).</param>
public CloudflareClient(IAuthentication authentication, ClientOptions clientOptions = null)
public CloudflareClient(IAuthentication authentication, ClientOptions? clientOptions = null)
{
if (authentication == null)
throw new ArgumentNullException(nameof(authentication));
@@ -82,7 +82,7 @@ namespace AMWD.Net.Api.Cloudflare
}
/// <inheritdoc/>
public async Task<CloudflareResponse<TResponse>> GetAsync<TResponse>(string requestPath, IQueryParameterFilter queryFilter = null, CancellationToken cancellationToken = default)
public async Task<CloudflareResponse<TResponse>> GetAsync<TResponse>(string requestPath, IQueryParameterFilter? queryFilter = null, CancellationToken cancellationToken = default)
{
ThrowIfDisposed();
ValidateRequestPath(requestPath);
@@ -94,7 +94,7 @@ namespace AMWD.Net.Api.Cloudflare
}
/// <inheritdoc/>
public async Task<CloudflareResponse<TResponse>> PostAsync<TResponse, TRequest>(string requestPath, TRequest request, IQueryParameterFilter queryFilter = null, CancellationToken cancellationToken = default)
public async Task<CloudflareResponse<TResponse>> PostAsync<TResponse, TRequest>(string requestPath, TRequest? request, IQueryParameterFilter? queryFilter = null, CancellationToken cancellationToken = default)
{
ThrowIfDisposed();
ValidateRequestPath(requestPath);
@@ -107,7 +107,7 @@ namespace AMWD.Net.Api.Cloudflare
}
/// <inheritdoc/>
public async Task<CloudflareResponse<TResponse>> PutAsync<TResponse, TRequest>(string requestPath, TRequest request, CancellationToken cancellationToken = default)
public async Task<CloudflareResponse<TResponse>> PutAsync<TResponse, TRequest>(string requestPath, TRequest? request, CancellationToken cancellationToken = default)
{
ThrowIfDisposed();
ValidateRequestPath(requestPath);
@@ -120,7 +120,7 @@ namespace AMWD.Net.Api.Cloudflare
}
/// <inheritdoc/>
public async Task<CloudflareResponse<TResponse>> DeleteAsync<TResponse>(string requestPath, IQueryParameterFilter queryFilter = null, CancellationToken cancellationToken = default)
public async Task<CloudflareResponse<TResponse>> DeleteAsync<TResponse>(string requestPath, IQueryParameterFilter? queryFilter = null, CancellationToken cancellationToken = default)
{
ThrowIfDisposed();
ValidateRequestPath(requestPath);
@@ -132,7 +132,7 @@ namespace AMWD.Net.Api.Cloudflare
}
/// <inheritdoc/>
public async Task<CloudflareResponse<TResponse>> PatchAsync<TResponse, TRequest>(string requestPath, TRequest request, CancellationToken cancellationToken = default)
public async Task<CloudflareResponse<TResponse>> PatchAsync<TResponse, TRequest>(string requestPath, TRequest? request, CancellationToken cancellationToken = default)
{
ThrowIfDisposed();
ValidateRequestPath(requestPath);
@@ -178,7 +178,7 @@ namespace AMWD.Net.Api.Cloudflare
{
string version = typeof(CloudflareClient).Assembly
.GetCustomAttribute<AssemblyInformationalVersionAttribute>()
.InformationalVersion;
?.InformationalVersion ?? "unknown";
HttpMessageHandler handler;
try
@@ -258,7 +258,7 @@ namespace AMWD.Net.Api.Cloudflare
}
}
private string BuildRequestUrl(string requestPath, IQueryParameterFilter queryFilter = null)
private string BuildRequestUrl(string requestPath, IQueryParameterFilter? queryFilter = null)
{
var dict = new Dictionary<string, string>();
@@ -284,7 +284,7 @@ namespace AMWD.Net.Api.Cloudflare
return $"{requestPath}?{query}";
}
private static HttpContent ConvertRequest<T>(T request)
private static HttpContent? ConvertRequest<T>(T request)
{
if (request == null)
return null;

View File

@@ -13,7 +13,7 @@ namespace AMWD.Net.Api.Cloudflare
/// Gets the <see cref="EnumMemberAttribute.Value"/> of the <see cref="Enum"/> when available, otherwise the <see cref="Enum.ToString()"/>.
/// </summary>
/// <param name="value">The enum value.</param>
public static string GetEnumMemberValue(this Enum value)
public static string? GetEnumMemberValue(this Enum value)
{
var fieldInfo = value.GetType().GetField(value.ToString());
if (fieldInfo == null)

View File

@@ -19,7 +19,7 @@ namespace AMWD.Net.Api.Cloudflare
/// <param name="requestPath">The request path (extending the base URL).</param>
/// <param name="queryFilter">The query parameters.</param>
/// <param name="cancellationToken">A cancellation token used to propagate notification that this operation should be canceled.</param>
Task<CloudflareResponse<TResponse>> GetAsync<TResponse>(string requestPath, IQueryParameterFilter queryFilter = null, CancellationToken cancellationToken = default);
Task<CloudflareResponse<TResponse>> GetAsync<TResponse>(string requestPath, IQueryParameterFilter? queryFilter = null, CancellationToken cancellationToken = default);
/// <summary>
/// Makes a POST request to the Cloudflare API.
@@ -33,7 +33,7 @@ namespace AMWD.Net.Api.Cloudflare
/// <param name="request">The request content.</param>
/// <param name="queryFilter">The query parameters.</param>
/// <param name="cancellationToken">A cancellation token used to propagate notification that this operation should be canceled.</param>
Task<CloudflareResponse<TResponse>> PostAsync<TResponse, TRequest>(string requestPath, TRequest request, IQueryParameterFilter queryFilter = null, CancellationToken cancellationToken = default);
Task<CloudflareResponse<TResponse>> PostAsync<TResponse, TRequest>(string requestPath, TRequest? request, IQueryParameterFilter? queryFilter = null, CancellationToken cancellationToken = default);
/// <summary>
/// Makes a PUT request to the Cloudflare API.
@@ -46,7 +46,7 @@ namespace AMWD.Net.Api.Cloudflare
/// <param name="requestPath">The request path (extending the base URL).</param>
/// <param name="request">The request content.</param>
/// <param name="cancellationToken">A cancellation token used to propagate notification that this operation should be canceled.</param>
Task<CloudflareResponse<TResponse>> PutAsync<TResponse, TRequest>(string requestPath, TRequest request, CancellationToken cancellationToken = default);
Task<CloudflareResponse<TResponse>> PutAsync<TResponse, TRequest>(string requestPath, TRequest? request, CancellationToken cancellationToken = default);
/// <summary>
/// Makes a DELETE request to the Cloudflare API.
@@ -59,7 +59,7 @@ namespace AMWD.Net.Api.Cloudflare
/// <param name="queryFilter">The query parameters.</param>
/// <param name="cancellationToken">A cancellation token used to propagate notification that this operation should be canceled.</param>
/// <returns></returns>
Task<CloudflareResponse<TResponse>> DeleteAsync<TResponse>(string requestPath, IQueryParameterFilter queryFilter = null, CancellationToken cancellationToken = default);
Task<CloudflareResponse<TResponse>> DeleteAsync<TResponse>(string requestPath, IQueryParameterFilter? queryFilter = null, CancellationToken cancellationToken = default);
/// <summary>
/// Makes a PATCH request to the Cloudflare API.
@@ -72,6 +72,6 @@ namespace AMWD.Net.Api.Cloudflare
/// <param name="requestPath">The request path (extending the base URL).</param>
/// <param name="request">The request content.</param>
/// <param name="cancellationToken">A cancellation token used to propagate notification that this operation should be canceled.</param>
Task<CloudflareResponse<TResponse>> PatchAsync<TResponse, TRequest>(string requestPath, TRequest request, CancellationToken cancellationToken = default);
Task<CloudflareResponse<TResponse>> PatchAsync<TResponse, TRequest>(string requestPath, TRequest? request, CancellationToken cancellationToken = default);
}
}

View File

@@ -10,12 +10,12 @@
/// </summary>
// <= 32 characters
[JsonProperty("id")]
public string Id { get; set; }
public string? Id { get; set; }
/// <summary>
/// The name of the account.
/// </summary>
[JsonProperty("name")]
public string Name { get; set; }
public string? Name { get; set; }
}
}

View File

@@ -10,18 +10,18 @@
/// </summary>
// <= 32 characters
[JsonProperty("id")]
public string Id { get; set; }
public string? Id { get; set; }
/// <summary>
/// Name of the owner.
/// </summary>
[JsonProperty("name")]
public string Name { get; set; }
public string? Name { get; set; }
/// <summary>
/// The type of owner.
/// </summary>
[JsonProperty("type")]
public string Type { get; set; }
public string? Type { get; set; }
}
}

View File

@@ -11,7 +11,7 @@ namespace AMWD.Net.Api.Cloudflare
/// Information about the result of the request.
/// </summary>
[JsonProperty("result_info")]
public PaginationInfo ResultInfo { get; set; }
public PaginationInfo? ResultInfo { get; set; }
/// <summary>
/// Whether the API call was successful.
@@ -42,6 +42,6 @@ namespace AMWD.Net.Api.Cloudflare
/// The result of the API call.
/// </summary>
[JsonProperty("result")]
public T Result { get; set; }
public T? Result { get; set; }
}
}

View File

@@ -15,6 +15,6 @@
/// The message.
/// </summary>
[JsonProperty("message")]
public string Message { get; set; }
public string? Message { get; set; }
}
}