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; } }