feat: Refactor RaceUploadCommunicationClient and RaceUploadTabView to improve HttpClient management and resource disposal

This commit is contained in:
MaddoScientisto 2026-03-08 14:30:37 +01:00
commit bdf503c627
3 changed files with 145 additions and 81 deletions

View file

@ -10,7 +10,7 @@ using Microsoft.Extensions.Options;
namespace Catalog.Communication;
public sealed class RaceUploadCommunicationClient : IRaceUploadCommunicationClient
public sealed class RaceUploadCommunicationClient : IRaceUploadCommunicationClient, IDisposable
{
private const string AdminMenuPath = "admin/menu/Menu4.abl";
private const string PublicLogonPath = "Logon.abl";
@ -27,6 +27,7 @@ public sealed class RaceUploadCommunicationClient : IRaceUploadCommunicationClie
private readonly HttpClient _httpClient;
private readonly ILogger<RaceUploadCommunicationClient> _logger;
private readonly IOptions<CatalogCommunicationOptions> _options;
private bool _disposed;
public RaceUploadCommunicationClient(
HttpClient httpClient,
@ -38,6 +39,18 @@ public sealed class RaceUploadCommunicationClient : IRaceUploadCommunicationClie
_logger = logger;
}
public void Dispose()
{
if (_disposed)
{
return;
}
_httpClient.Dispose();
_disposed = true;
GC.SuppressFinalize(this);
}
public Task<RawEndpointResponse> LoginAdminAsync(AdminLoginRequest request, CancellationToken cancellationToken = default)
{
ArgumentNullException.ThrowIfNull(request);