Skip to content
Snippets Groups Projects
Client.cs 2.67 KiB
Newer Older
using Autofac;
Klaus Fischer's avatar
Klaus Fischer committed
using FitConnect.Interfaces.Subscriber;
Klaus Fischer's avatar
Klaus Fischer committed
using Microsoft.Extensions.Logging;
using Microsoft.IdentityModel.Logging;
Klaus Fischer's avatar
Klaus Fischer committed

namespace FitConnect;

public static class Client {
    static Client() {
#if DEBUG
        IdentityModelEventSource.ShowPII = true;
#endif
    }

    /// <summary>
Klaus Fischer's avatar
Klaus Fischer committed
    ///     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>
Klaus Fischer's avatar
Klaus Fischer committed
    public static ISender GetSender(FitConnectEnvironment environment, string clientId,
        string clientSecret, ILogger? logger = null) {
Klaus Fischer's avatar
Klaus Fischer committed
        return new Sender(environment, clientId, clientSecret, logger);
Klaus Fischer's avatar
Klaus Fischer committed
    ///     Creates a subscriber client
    /// <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>
Klaus Fischer's avatar
Klaus Fischer committed
    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>
Klaus Fischer's avatar
Klaus Fischer committed
    ///     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) {
Klaus Fischer's avatar
Klaus Fischer committed
        return new Router(environment, logger);
Klaus Fischer's avatar
Klaus Fischer committed
    public static ISender GetSender(FitConnectEnvironment environment, string clientId,
        string clientSecret, IContainer container) {
Klaus Fischer's avatar
Klaus Fischer committed
        return new Sender(environment, clientId, clientSecret, container);
Klaus Fischer's avatar
Klaus Fischer committed
    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);
Klaus Fischer's avatar
Klaus Fischer committed
    }