using Microsoft.Extensions.DependencyInjection;
using MaksIT.IdentityHub.Client;
namespace MaksIT.PostClient.Client.Extensions;
public static class ServiceCollectionExtensions {
///
/// Registers the IMAP/POP3/SMTP session factory, archive catalog, worker, and Identity Hub IdP client.
///
public static IServiceCollection AddPostClient(this IServiceCollection services) {
ArgumentNullException.ThrowIfNull(services);
services.AddIdentityHubIdpClient(IdentityHubAddress.Origin());
services.AddSingleton();
services.AddSingleton();
services.AddSingleton();
services.AddSingleton();
services.AddSingleton();
services.AddSingleton();
services.AddSingleton(sp => sp.GetRequiredService());
services.AddSingleton();
services.AddSingleton(sp => MailWorkerClient.Create(
sp.GetRequiredService(),
sp.GetRequiredService(),
Environment.ProcessPath));
return services;
}
}