public static AgentFrameworkBuilder AddSovrinToken(this AgentFrameworkBuilder agentFrameworkBuilder) { agentFrameworkBuilder.Services.AddHostedService <SovrinTokenConfigurationService>(); agentFrameworkBuilder.Services.AddSingleton <IPaymentService, SovrinPaymentService>(); agentFrameworkBuilder.Services.AddSingleton <IAgentMiddleware, PaymentsAgentMiddleware>(); return(agentFrameworkBuilder); }
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); }
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)); }
/// <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); }
/// <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); }
/// <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);
public static AgentFrameworkBuilder AddIssuerAgent(this AgentFrameworkBuilder frameworkBuilder, Action <IssuerProvisioningConfiguration> config) { return(AddIssuerAgent <DefaultAgent>(frameworkBuilder, config)); }
/// <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); }
public static AgentFrameworkBuilder AddNullPay(this AgentFrameworkBuilder agentFrameworkBuilder) { agentFrameworkBuilder.Services.AddHostedService <NullPayConfigurationService>(); return(agentFrameworkBuilder); }
/// <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); }
/// <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); }