using Autofac; using FitConnect.Interfaces; using FitConnect.Interfaces.Subscriber; using Microsoft.Extensions.Logging; using Microsoft.IdentityModel.Logging; namespace FitConnect; public static class Client { static Client() { #if DEBUG IdentityModelEventSource.ShowPII = true; #endif } /// <summary> /// Creates the Sender Client /// </summary> /// <param name="environment">FIT-Connect Environment</param> /// <param name="clientId">Client ID</param> /// <param name="clientSecret">Client Secret</param> /// <param name="logger">An instance of an ILogger</param> /// <returns></returns> public static ISender GetSender(FitConnectEnvironment environment, string clientId, string clientSecret, ILogger? logger = null) { return new Sender(environment, clientId, clientSecret, logger); } /// <summary> /// Creates a subscriber client /// </summary> /// <param name="environment">FIT-Connect Environment</param> /// <param name="clientId">Client ID</param> /// <param name="clientSecret">Client Secret</param> /// <param name="privateKeyDecryption">Private key for decryption</param> /// <param name="privateKeySigning">Private key for signing</param> /// <param name="logger">An instance of an ILogger</param> /// <returns></returns> public static ISubscriber GetSubscriber(FitConnectEnvironment environment, string clientId, string clientSecret, string privateKeyDecryption, string privateKeySigning, ILogger? logger = null) { return new Subscriber(environment, clientId, clientSecret, privateKeyDecryption, privateKeySigning, logger); } /// <summary> /// Returns a Router API implementation /// </summary> /// <param name="environment">FIT-Connect Environment</param> /// <param name="logger">An instance of an ILogger</param> /// <returns></returns> public static IRouter GetRouter(FitConnectEnvironment environment, ILogger? logger = null) { return new Router(environment, logger); } #if DEBUG public static ISender GetSender(FitConnectEnvironment environment, string clientId, string clientSecret, IContainer container) { return new Sender(environment, clientId, clientSecret, container); } public static ISubscriber GetSubscriber(FitConnectEnvironment environment, string clientId, string clientSecret, string privateKeyDecryption, string privateKeySigning, IContainer container) { return new Subscriber(environment, clientId, clientSecret, privateKeyDecryption, privateKeySigning, container); } #endif }