public static AgentConfigurationBuilder AddMessageHandler <TMessageHandler>(this AgentConfigurationBuilder builder) where TMessageHandler : class,
 IMessageHandler
 {
     builder.Services.AddSingleton <IMessageHandler, TMessageHandler>();
     builder.Services.TryAddSingleton <TMessageHandler>();
     return(builder);
 }
Beispiel #2
0
        /// <summary>
        /// Adds a Sovrin issuer agent with the provided configuration
        /// </summary>
        /// <param name="services">The services.</param>
        /// <param name="agentConfiguration">The agent configuration.</param>
        public static void AddAgentFramework(this IServiceCollection services,
                                             Action <AgentConfigurationBuilder> agentConfiguration = null)
        {
            RegisterCoreServices(services);
            services.AddDefaultMessageHandlers();
            services.AddLogging();

            var serviceBuilder = new AgentConfigurationBuilder(services);

            agentConfiguration?.Invoke(serviceBuilder);

            serviceBuilder.AddDefaultServices();

            services = serviceBuilder.Services;

            services.Configure <WalletOptions>(obj =>
            {
                obj.WalletConfiguration = serviceBuilder.WalletOptions.WalletConfiguration;
                obj.WalletCredentials   = serviceBuilder.WalletOptions.WalletCredentials;
            });

            services.Configure <PoolOptions>(obj =>
            {
                obj.PoolName        = serviceBuilder.PoolOptions.PoolName;
                obj.GenesisFilename = serviceBuilder.PoolOptions.GenesisFilename;
            });
        }
Beispiel #3
0
 /// <summary>
 /// Overrides the default agent context provider.
 /// </summary>
 /// <returns>The default agent context provider.</returns>
 /// <param name="builder">Builder.</param>
 /// <typeparam name="TProvider">The 1st type parameter.</typeparam>
 public static AgentConfigurationBuilder OverrideDefaultAgentContextProvider <TProvider>(
     this AgentConfigurationBuilder builder)
     where TProvider : class, IAgentContextProvider
 {
     builder.Services.AddSingleton <IAgentContextProvider, TProvider>();
     return(builder);
 }
        public static AgentConfigurationBuilder AddMemoryCacheLedgerService(this AgentConfigurationBuilder builder, MemoryCacheEntryOptions options = null)
        {
            builder.AddExtendedLedgerService <MemoryCacheLedgerService>()
            .Services.AddMemoryCache()
            .AddSingleton(_ => options);

            return(builder);
        }
 internal static AgentConfigurationBuilder AddDefaultServices(this AgentConfigurationBuilder builder)
 {
     builder.Services.TryAddSingleton <IEventAggregator, EventAggregator>();
     builder.Services.TryAddSingleton <IConnectionService, DefaultConnectionService>();
     builder.Services.TryAddSingleton <ICredentialService, DefaultCredentialService>();
     builder.Services.TryAddSingleton <ILedgerService, DefaultLedgerService>();
     builder.Services.TryAddSingleton <IPoolService, DefaultPoolService>();
     builder.Services.TryAddSingleton <IProofService, DefaultProofService>();
     builder.Services.TryAddSingleton <IProvisioningService, DefaultProvisioningService>();
     builder.Services.TryAddSingleton <IMessageService, DefaultMessageService>();
     builder.Services.TryAddSingleton <HttpClient>();
     builder.Services.TryAddSingleton <ISchemaService, DefaultSchemaService>();
     builder.Services.TryAddSingleton <ITailsService, DefaultTailsService>();
     builder.Services.TryAddSingleton <IWalletRecordService, DefaultWalletRecordService>();
     builder.Services.TryAddSingleton <IWalletService, DefaultWalletService>();
     return(builder);
 }
Beispiel #6
0
        internal static AgentConfigurationBuilder AddDefaultServices(this AgentConfigurationBuilder builder)
        {
            builder.Services.TryAddSingleton <IEventAggregator, EventAggregator>();
            builder.Services.TryAddSingleton <IAgentContextProvider, DefaultAgentContextProvider>();

            builder.Services.TryAddSingleton <IConnectionService, DefaultConnectionService>();
            builder.Services.TryAddSingleton <ICredentialService, DefaultCredentialService>();
            builder.Services.TryAddSingleton <ILedgerService, DefaultLedgerService>();
            builder.Services.TryAddSingleton <IPoolService, DefaultPoolService>();
            builder.Services.TryAddSingleton <IProofService, DefaultProofService>();
            builder.Services.TryAddSingleton <IEphemeralChallengeService, DefaultEphemeralChallengeService>();
            builder.Services.TryAddSingleton <IDiscoveryService, DefaultDiscoveryService>();
            builder.Services.TryAddSingleton <IProvisioningService, DefaultProvisioningService>();
            builder.Services.TryAddSingleton <IMessageService, DefaultMessageService>();
            builder.Services.TryAddSingleton <HttpMessageHandler, HttpClientHandler>();
            builder.Services.TryAddSingleton <ISchemaService, DefaultSchemaService>();
            builder.Services.TryAddSingleton <ITailsService, DefaultTailsService>();
            builder.Services.TryAddSingleton <IWalletRecordService, DefaultWalletRecordService>();
            builder.Services.TryAddSingleton <IWalletService, DefaultWalletService>();

            builder.Services.TryAddSingleton <IMessageDispatcher, HttpMessageDispatcher>();

            return(builder);
        }
 public static AgentConfigurationBuilder AddExtendedLedgerService <TImplementation>(this AgentConfigurationBuilder builder)
     where TImplementation : class, ILedgerService
 {
     builder.Services.AddSingleton <ILedgerService, TImplementation>();
     return(builder);
 }
 public static AgentConfigurationBuilder AddExtendedCredentialService <TService, TImplementation>(this AgentConfigurationBuilder builder)
     where TService : class, ICredentialService
     where TImplementation : class, TService, ICredentialService
 {
     builder.Services.AddSingleton <TImplementation>();
     builder.Services.AddSingleton <ICredentialService>(x => x.GetService <TImplementation>());
     builder.Services.AddSingleton <TService>(x => x.GetService <TImplementation>());
     return(builder);
 }
 public static AgentConfigurationBuilder OverrideDefaultMessageHandlers(this AgentConfigurationBuilder builder)
 {
     builder.RegisterCoreMessageHandlers = false;
     return(builder);
 }