mirror of
https://github.com/Cleanuparr/Cleanuparr.git
synced 2026-01-20 19:59:10 -05:00
43 lines
1.6 KiB
C#
43 lines
1.6 KiB
C#
using Cleanuparr.Domain.Enums;
|
|
using Cleanuparr.Infrastructure.Features.Arr.Interfaces;
|
|
|
|
namespace Cleanuparr.Infrastructure.Features.Arr;
|
|
|
|
public sealed class ArrClientFactory : IArrClientFactory
|
|
{
|
|
private readonly ISonarrClient _sonarrClient;
|
|
private readonly IRadarrClient _radarrClient;
|
|
private readonly ILidarrClient _lidarrClient;
|
|
private readonly IReadarrClient _readarrClient;
|
|
private readonly IWhisparrV2Client _whisparrV2Client;
|
|
private readonly IWhisparrV3Client _whisparrV3Client;
|
|
|
|
public ArrClientFactory(
|
|
ISonarrClient sonarrClient,
|
|
IRadarrClient radarrClient,
|
|
ILidarrClient lidarrClient,
|
|
IReadarrClient readarrClient,
|
|
IWhisparrV2Client whisparrV2Client,
|
|
IWhisparrV3Client whisparrV3Client
|
|
)
|
|
{
|
|
_sonarrClient = sonarrClient;
|
|
_radarrClient = radarrClient;
|
|
_lidarrClient = lidarrClient;
|
|
_readarrClient = readarrClient;
|
|
_whisparrV2Client = whisparrV2Client;
|
|
_whisparrV3Client = whisparrV3Client;
|
|
}
|
|
|
|
public IArrClient GetClient(InstanceType type, float instanceVersion) =>
|
|
type switch
|
|
{
|
|
InstanceType.Sonarr => _sonarrClient,
|
|
InstanceType.Radarr => _radarrClient,
|
|
InstanceType.Lidarr => _lidarrClient,
|
|
InstanceType.Readarr => _readarrClient,
|
|
InstanceType.Whisparr when instanceVersion is 2 => _whisparrV2Client,
|
|
InstanceType.Whisparr when instanceVersion is 3 => _whisparrV3Client,
|
|
_ => throw new NotImplementedException($"instance type {type} is not yet supported")
|
|
};
|
|
} |