/// <summary> /// Adds the in-memory api store. /// </summary> /// <param name="builder">The builder.</param> /// <param name="apiDescriptions">A list of services which will be added to the in-memory store.</param> /// <returns></returns> public static IServiceRepositoryBuilder AddInMemoryApiStore(this IServiceRepositoryBuilder builder, params ServiceApiDescription[] apiDescriptions) { builder.Services.AddSingleton(apiDescriptions); builder.AddApiStoreAsSingleton <InMemoryApiStore>(); return(builder); }
/// <summary> /// Adds an Api store as singleton. /// </summary> /// <typeparam name="T">Type of the api store</typeparam> /// <param name="builder">The builder.</param> /// <returns></returns> public static IServiceRepositoryBuilder AddApiStoreAsSingleton <T>(this IServiceRepositoryBuilder builder) where T : class, IApiStore { builder.Services.TryAddSingleton(typeof(T)); builder.Services.AddSingleton <IApiStore, T>(); return(builder); }
/// <summary> /// Configures EntityFramework implementation of IApiStore. /// </summary> /// <typeparam name="TContext">The IConfigurationDbContext to use.</typeparam> /// <param name="builder">The builder.</param> /// <param name="storeOptionsAction">The store options action.</param> /// <returns></returns> public static IServiceRepositoryBuilder AddRepositoryStore <TContext>(this IServiceRepositoryBuilder builder, Action <RepositoryStoreOptions> storeOptionsAction = null) where TContext : DbContext, IRepositoryDbContext { builder.Services.AddRepositoryDbContext <TContext>(storeOptionsAction); builder.AddApiStore <ApiStore>(); return(builder); }
/// <summary> /// Configures EntityFramework implementation of IApiStore /// </summary> /// <param name="builder">The builder.</param> /// <param name="storeOptionsAction">The store options action.</param> /// <returns></returns> public static IServiceRepositoryBuilder AddRepositoryStore(this IServiceRepositoryBuilder builder, Action <RepositoryStoreOptions> storeOptionsAction = null) { return(builder.AddRepositoryStore <RepositoryDbContext>(storeOptionsAction)); }