public static AgentFrameworkBuilder AddSovrinToken(this AgentFrameworkBuilder agentFrameworkBuilder)
 {
     agentFrameworkBuilder.Services.AddHostedService <SovrinTokenConfigurationService>();
     agentFrameworkBuilder.Services.AddSingleton <IPaymentService, SovrinPaymentService>();
     agentFrameworkBuilder.Services.AddSingleton <IAgentMiddleware, PaymentsAgentMiddleware>();
     return(agentFrameworkBuilder);
 }
Esempio n. 2
0
        public static AgentFrameworkBuilder AddAgent <TAgent, TConfiguration>(this AgentFrameworkBuilder frameworkBuilder, Func <TConfiguration> createConfiguration)
            where TAgent : class, IAgent
            where TConfiguration : ProvisioningConfiguration
        {
            var configuration = createConfiguration.Invoke();

            frameworkBuilder.Services.Configure <WalletOptions>(obj =>
            {
                obj.WalletConfiguration = configuration.WalletConfiguration;
                obj.WalletCredentials   = configuration.WalletCredentials;
            });

            frameworkBuilder.Services.Configure <PoolOptions>(obj =>
            {
                obj.PoolName        = configuration.PoolName;
                obj.GenesisFilename = configuration.GenesisFilename;
            });

            frameworkBuilder.AddAgentProvider();
            frameworkBuilder.Services.AddDefaultMessageHandlers();
            frameworkBuilder.Services.AddSingleton <ProvisioningConfiguration>(configuration);
            frameworkBuilder.Services.AddSingleton <IAgent, TAgent>();
            frameworkBuilder.Services.AddSingleton <IHostedService>(s => new ProvisioningHostedService(
                                                                        configuration,
                                                                        s.GetRequiredService <IProvisioningService>(),
                                                                        s.GetRequiredService <IPoolService>(),
                                                                        s.GetRequiredService <IOptions <PoolOptions> >()));

            return(frameworkBuilder);
        }
Esempio n. 3
0
        public static AgentFrameworkBuilder AddIssuerAgent <T>(this AgentFrameworkBuilder frameworkBuilder, Action <IssuerProvisioningConfiguration> config)
            where T : class, IAgent
        {
            var configuration = new IssuerProvisioningConfiguration();

            config?.Invoke(configuration);

            return(AddAgent <T, IssuerProvisioningConfiguration>(frameworkBuilder, () => configuration));
        }
Esempio n. 4
0
        /// <summary>
        /// Registers the agent framework required services and invokes an agent builder
        /// </summary>
        /// <param name="services">Services.</param>
        /// <param name="builder">Builder.</param>
        public static AgentFrameworkBuilder AddAgentFramework(this IServiceCollection services, Action <AgentFrameworkBuilder> builder)
        {
            AddAgentFramework(services);

            var frameworkBuilder = new AgentFrameworkBuilder(services);

            builder.Invoke(frameworkBuilder);
            return(frameworkBuilder);
        }
Esempio n. 5
0
        /// <summary>
        /// Registers and provisions an agent configured as Issuer.
        /// </summary>
        /// <param name="builder"></param>
        /// <param name="options"></param>
        /// <returns></returns>
        public static AgentFrameworkBuilder RegisterIssuerAgent <T>(
            this AgentFrameworkBuilder builder,
            Action <AgentOptions> options)
            where T : class, IAgent
        {
            builder.AddAgentProvider();
            builder.Services.AddDefaultMessageHandlers();
            builder.Services.AddSingleton <IAgent, T>();
            builder.Services.Configure(options);
            builder.Services.AddHostedService <IssuerProvisioningHostedService>();

            return(builder);
        }
Esempio n. 6
0
 /// <summary>
 /// Registers and provisions an agent configured as Issuer.
 /// </summary>
 /// <param name="frameworkBuilder"></param>
 /// <param name="options"></param>
 /// <returns></returns>
 public static AgentFrameworkBuilder RegisterIssuerAgent(
     this AgentFrameworkBuilder frameworkBuilder,
     Action <AgentOptions> options)
 => RegisterIssuerAgent <DefaultAgent>(frameworkBuilder, options);
Esempio n. 7
0
 public static AgentFrameworkBuilder AddIssuerAgent(this AgentFrameworkBuilder frameworkBuilder, Action <IssuerProvisioningConfiguration> config)
 {
     return(AddIssuerAgent <DefaultAgent>(frameworkBuilder, config));
 }
Esempio n. 8
0
 /// <summary>
 /// Adds agent provider services
 /// </summary>
 /// <param name="builder"></param>
 /// <returns></returns>
 public static AgentFrameworkBuilder AddAgentProvider(this AgentFrameworkBuilder builder)
 {
     builder.Services.AddSingleton <IAgentProvider, DefaultAgentProvider>();
     return(builder);
 }
 public static AgentFrameworkBuilder ConfigurePaymentAddress(this AgentFrameworkBuilder builder, Action <AddressOptions> options)
 {
     builder.Services.Configure <AddressOptions>(options);
     return(builder);
 }
Esempio n. 10
0
 public static AgentFrameworkBuilder AddNullPay(this AgentFrameworkBuilder agentFrameworkBuilder)
 {
     agentFrameworkBuilder.Services.AddHostedService <NullPayConfigurationService>();
     return(agentFrameworkBuilder);
 }
Esempio n. 11
0
 /// <summary>
 /// Configure the pool configuration options
 /// </summary>
 /// <param name="builder"></param>
 /// <param name="options"></param>
 /// <returns></returns>
 public static AgentFrameworkBuilder ConfigurePool(this AgentFrameworkBuilder builder, Action <PoolOptions> options)
 {
     builder.Services.Configure <PoolOptions>(options);
     builder.Services.AddHostedService <PoolConfigurationHostedService>();
     return(builder);
 }
Esempio n. 12
0
 /// <summary>
 /// Configure the wallet options
 /// </summary>
 /// <param name="builder"></param>
 /// <param name="options"></param>
 /// <returns></returns>
 public static AgentFrameworkBuilder ConfigureWallet(this AgentFrameworkBuilder builder, Action <WalletOptions> options)
 {
     builder.Services.Configure <WalletOptions>(options);
     return(builder);
 }