/// <summary> /// Adds a sovrin issuer agent with the provided configuration /// </summary> /// <param name="services">The services.</param> /// <param name="agentConfiguration">The agent configuration.</param> /// <param name="serviceConfiguration">The service resolution configuration</param> public static void AddAgent(this IServiceCollection services, Action <AgentConfiguration> agentConfiguration = null, Action <AgentServicesBuilder> serviceConfiguration = null) { RegisterCoreServices(services); var serviceBuilder = new AgentServicesBuilder(services); serviceConfiguration?.Invoke(serviceBuilder); serviceBuilder.AddCoreServices(); services = serviceBuilder.Services; var defaultConfiguration = new AgentConfiguration(); agentConfiguration?.Invoke(defaultConfiguration); services.Configure <WalletOptions>((obj) => { obj.WalletConfiguration = defaultConfiguration.WalletOptions.WalletConfiguration; obj.WalletCredentials = defaultConfiguration.WalletOptions.WalletCredentials; }); services.Configure <PoolOptions>((obj) => { obj.PoolName = defaultConfiguration.PoolOptions.PoolName; obj.GenesisFilename = defaultConfiguration.PoolOptions.GenesisFilename; }); }
public static AgentServicesBuilder AddMemoryCacheLedgerService(this AgentServicesBuilder builder, MemoryCacheEntryOptions options = null) { builder.AddExtendedLedgerService <MemoryCacheLedgerService>() .Services.AddMemoryCache() .AddSingleton(_ => options); return(builder); }
public static AgentServicesBuilder AddCoreServices(this AgentServicesBuilder builder) { builder.Services.TryAddSingleton <IConnectionService, DefaultConnectionService>(); builder.Services.TryAddSingleton <ICredentialService, DefaultCredentialService>(); builder.Services.TryAddSingleton <ILedgerService, DefaultLedgerService>(); builder.Services.TryAddSingleton <IMessageSerializer, DefaultMessageSerializer>(); builder.Services.TryAddSingleton <IPoolService, DefaultPoolService>(); builder.Services.TryAddSingleton <IProofService, DefaultProofService>(); builder.Services.TryAddSingleton <IProvisioningService, DefaultProvisioningService>(); builder.Services.TryAddSingleton <IRouterService, DefaultRouterService>(); builder.Services.TryAddSingleton <ISchemaService, DefaultSchemaService>(); builder.Services.TryAddSingleton <ITailsService, DefaultTailsService>(); builder.Services.TryAddSingleton <IWalletRecordService, DefaultWalletRecordService>(); builder.Services.TryAddSingleton <IWalletService, DefaultWalletService>(); return(builder); }
public static AgentServicesBuilder AddExtendedMessageSerializer <TImplementation>(this AgentServicesBuilder builder) where TImplementation : class, IMessageSerializer { builder.Services.AddSingleton <IMessageSerializer, TImplementation>(); return(builder); }
public static AgentServicesBuilder AddExtendedMessageSerializer <TService, TImplementation>(this AgentServicesBuilder builder) where TService : class, IMessageSerializer where TImplementation : class, TService, IMessageSerializer { builder.Services.AddSingleton <TImplementation>(); builder.Services.AddSingleton <IMessageSerializer>(x => x.GetService <TImplementation>()); builder.Services.AddSingleton <TService>(x => x.GetService <TImplementation>()); return(builder); }
public static AgentServicesBuilder AddExtendedLedgerService <TImplementation>(this AgentServicesBuilder builder) where TImplementation : class, ILedgerService { builder.Services.AddSingleton <ILedgerService, TImplementation>(); return(builder); }
public static AgentServicesBuilder AddExtendedCredentialService <TService, TImplementation>(this AgentServicesBuilder 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); }