Example #1
0
 /// <summary>
 /// Add support for payments with Sovrin Token
 /// </summary>
 /// <param name="agentFrameworkBuilder"></param>
 /// <returns></returns>
 public static AriesFrameworkBuilder AddSovrinToken(this AriesFrameworkBuilder agentFrameworkBuilder)
 {
     agentFrameworkBuilder.Services.AddHostedService <SovrinTokenConfigurationService>();
     agentFrameworkBuilder.Services.AddSingleton <IPaymentService, SovrinPaymentService>();
     agentFrameworkBuilder.Services.AddSingleton <IAgentMiddleware, PaymentsAgentMiddleware>();
     return(agentFrameworkBuilder);
 }
 /// <summary>
 /// Registers and provisions an agent.
 /// </summary>
 /// <param name="builder"></param>
 /// <param name="options"></param>
 /// <param name="delayProvisioning"></param>
 /// <returns></returns>
 public static AriesFrameworkBuilder RegisterEdgeAgent
 (
     this AriesFrameworkBuilder builder,
     Action <AgentOptions> options,
     bool delayProvisioning = false)
 => RegisterEdgeAgent <DefaultAgent>(builder, options, delayProvisioning
                                     );
Example #3
0
        /// <summary>
        /// Registers and provisions an agent with custom implementation
        /// </summary>
        /// <param name="builder"></param>
        /// <param name="options"></param>
        /// <returns></returns>
        public static AriesFrameworkBuilder RegisterMediatorAgent <T>(
            this AriesFrameworkBuilder builder,
            Action <AgentOptions> options)
            where T : class, IAgent
        {
            builder.AddAgentProvider();
            builder.Services.AddDefaultMessageHandlers();
            builder.Services.AddMessageHandler <MediatorForwardHandler>();
            builder.Services.AddMessageHandler <RoutingInboxHandler>();
            builder.Services.AddMessageHandler <DefaultStoreBackupHandler>();
            builder.Services.AddMessageHandler <RetrieveBackupHandler>();
            builder.Services.AddSingleton <IRoutingStore, DefaultRoutingStore>();
            builder.Services.AddSingleton <IStorageService, DefaultStorageService>();
            builder.Services.AddSingleton <IAgent, T>();
            builder.Services.Configure(options);
            builder.Services.AddHostedService <MediatorProvisioningService>();
            builder.Services.AddSingleton <MediatorDiscoveryMiddleware>();

            if (Environment.GetEnvironmentVariable("Agent_GenesisFilename") != null)
            {
                builder.Services.AddHostedService <PoolConfigurationService>();
            }

            return(builder);
        }
        /// <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 AriesFrameworkBuilder AddAriesFramework(this IServiceCollection services, Action <AriesFrameworkBuilder> builder)
        {
            AddAriesFramework(services);

            var frameworkBuilder = new AriesFrameworkBuilder(services);

            builder.Invoke(frameworkBuilder);
            return(frameworkBuilder);
        }
Example #5
0
        /// <summary>
        /// Registers and provisions an agent with custom implementation
        /// </summary>
        /// <param name="builder"></param>
        /// <param name="options"></param>
        /// <returns></returns>
        public static AriesFrameworkBuilder RegisterAgent <T>(
            this AriesFrameworkBuilder 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 <DefaultProvisioningHostedService>();
            builder.Services.AddHostedService <PoolConfigurationService>();

            return(builder);
        }
Example #6
0
        /// <summary>
        /// Registers and provisions an agent with custom implementation
        /// </summary>
        /// <param name="builder"></param>
        /// <param name="options"></param>
        /// <returns></returns>
        public static AriesFrameworkBuilder RegisterMediatorAgent <T>(
            this AriesFrameworkBuilder builder,
            Action <AgentOptions> options)
            where T : class, IAgent
        {
            builder.AddAgentProvider();
            builder.Services.AddDefaultMessageHandlers();
            builder.Services.AddMessageHandler <MediatorForwardHandler>();
            builder.Services.AddMessageHandler <RoutingInboxHandler>();
            builder.Services.AddSingleton <IRoutingStore, DefaultRoutingStore>();
            builder.Services.AddSingleton <IAgent, T>();
            builder.Services.Configure(options);
            builder.Services.AddHostedService <MediatorProvisioningService>();
            builder.Services.AddSingleton <MediatorDiscoveryMiddleware>();

            return(builder);
        }
        /// <summary>
        /// Registers and provisions an agent with custom implementation
        /// </summary>
        /// <param name="builder"></param>
        /// <param name="options"></param>
        /// <returns></returns>
        public static AriesFrameworkBuilder RegisterEdgeAgent <T>(
            this AriesFrameworkBuilder builder,
            Action <AgentOptions> options,
            bool delayProvisioning = false)
            where T : class, IAgent
        {
            builder.AddAgentProvider();
            builder.Services.AddDefaultMessageHandlers();
            builder.Services.AddSingleton <IAgent, T>();
            builder.Services.Configure(options);
            builder.Services.AddSingleton <IEdgeClientService, EdgeClientService>();
            builder.Services.AddSingleton <IEdgeProvisioningService, EdgeProvisioningService>();
            builder.Services.AddExtendedConnectionService <EdgeConnectionService>();
            if (!delayProvisioning)
            {
                builder.Services.AddHostedService <EdgeProvisioningService>();
            }

            return(builder);
        }
Example #8
0
 /// <summary>
 /// Registers and provisions an agent.
 /// </summary>
 /// <param name="builder"></param>
 /// <param name="options"></param>
 /// <returns></returns>
 public static AriesFrameworkBuilder RegisterMediatorAgent(
     this AriesFrameworkBuilder builder,
     Action <AgentOptions> options)
 => RegisterMediatorAgent <DefaultMediatorAgent>(builder, options);
Example #9
0
 /// <summary>
 /// Adds agent provider services
 /// </summary>
 /// <param name="builder"></param>
 /// <returns></returns>
 public static AriesFrameworkBuilder AddAgentProvider(this AriesFrameworkBuilder builder)
 {
     builder.Services.AddSingleton <IAgentProvider, DefaultAgentProvider>();
     return(builder);
 }
Example #10
0
 /// <summary>
 /// Accepts the latest transaction author agreement on service startup
 /// and stores the configuration in the <see cref="ProvisioningRecord" />.
 /// </summary>
 /// <param name="builder"></param>
 /// <returns></returns>
 public static AriesFrameworkBuilder AcceptTxnAuthorAgreement(this AriesFrameworkBuilder builder)
 {
     builder.Services.AddHostedService <TxnAuthorAcceptanceService>();
     return(builder);
 }
Example #11
0
 /// <summary>
 /// Confgures the default payment address by adding support for determinstic address generation
 /// </summary>
 /// <param name="builder"></param>
 /// <param name="options"></param>
 /// <returns></returns>
 public static AriesFrameworkBuilder ConfigurePaymentAddress(this AriesFrameworkBuilder builder, Action <AddressOptions> options)
 {
     builder.Services.Configure <AddressOptions>(options);
     return(builder);
 }