makes piwigo client factory injectable
This commit is contained in:
parent
c06e8763a4
commit
b67f85cd85
@ -0,0 +1,9 @@
|
||||
using Piwigo.Client;
|
||||
using PiwigoDirectorySync.Persistence;
|
||||
|
||||
namespace PiwigoDirectorySync.Infrastructure;
|
||||
|
||||
public interface IPiwigoClientFactory
|
||||
{
|
||||
Task<IPiwigoClient> GetPiwigoClientAsync(ServerEntity piwigoServer, CancellationToken ct);
|
||||
}
|
@ -4,11 +4,18 @@ using PiwigoDirectorySync.Persistence;
|
||||
|
||||
namespace PiwigoDirectorySync.Infrastructure;
|
||||
|
||||
public static class PiwigoClientFactory
|
||||
public class PiwigoClientFactory : IPiwigoClientFactory
|
||||
{
|
||||
public static async Task<IPiwigoClient> GetPiwigoClientAsync(ServerEntity piwigoServer, ILoggerFactory loggerFactory, CancellationToken ct)
|
||||
private readonly ILoggerFactory _loggerFactory;
|
||||
|
||||
public PiwigoClientFactory(ILoggerFactory loggerFactory)
|
||||
{
|
||||
var piwigoClient = PiwigoClient.CreateClient(piwigoServer.Url, piwigoServer.Username, piwigoServer.Password, loggerFactory);
|
||||
_loggerFactory = loggerFactory;
|
||||
}
|
||||
|
||||
public async Task<IPiwigoClient> GetPiwigoClientAsync(ServerEntity piwigoServer, CancellationToken ct)
|
||||
{
|
||||
var piwigoClient = PiwigoClient.CreateClient(piwigoServer.Url, piwigoServer.Username, piwigoServer.Password, _loggerFactory);
|
||||
await piwigoClient.Session.LoginAsync(ct);
|
||||
return piwigoClient;
|
||||
}
|
||||
|
@ -13,6 +13,7 @@ registrations.AddLogging(l => l.AddSimpleConsole(c =>
|
||||
})
|
||||
.AddDebug());
|
||||
|
||||
registrations.AddTransient<IPiwigoClientFactory, PiwigoClientFactory>();
|
||||
registrations.AddTransient<IFileIndexer, FileIndexer>();
|
||||
registrations.AddTransient<IFileSystemScanner, FileSystemScanner>();
|
||||
registrations.AddTransient<IAlbumSynchronizer, AlbumSynchronizer>();
|
||||
|
@ -9,12 +9,12 @@ namespace PiwigoDirectorySync.Services;
|
||||
public class AlbumSynchronizer : IAlbumSynchronizer
|
||||
{
|
||||
private readonly ILogger<AlbumSynchronizer> _logger;
|
||||
private readonly ILoggerFactory _loggerFactory;
|
||||
private readonly IPiwigoClientFactory _piwigoClientFactory;
|
||||
|
||||
public AlbumSynchronizer(ILogger<AlbumSynchronizer> logger, ILoggerFactory loggerFactory)
|
||||
public AlbumSynchronizer(ILogger<AlbumSynchronizer> logger, IPiwigoClientFactory piwigoClientFactory)
|
||||
{
|
||||
_logger = logger;
|
||||
_loggerFactory = loggerFactory;
|
||||
_piwigoClientFactory = piwigoClientFactory;
|
||||
}
|
||||
|
||||
public async Task SynchronizeAlbums(int piwigoServerId, CancellationToken ct)
|
||||
@ -27,7 +27,7 @@ public class AlbumSynchronizer : IAlbumSynchronizer
|
||||
return;
|
||||
}
|
||||
|
||||
var piwigoClient = await PiwigoClientFactory.GetPiwigoClientAsync(piwigoServer, _loggerFactory, ct);
|
||||
var piwigoClient = await _piwigoClientFactory.GetPiwigoClientAsync(piwigoServer, ct);
|
||||
|
||||
await UpdatePiwigoAlbumsFromServerAsync(dbContext, piwigoClient, piwigoServer, ct);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user