using Microsoft.EntityFrameworkCore; using Orleans.Hosting; using Orleans.Providers; using System; using System.Collections.Generic; using System.Text; namespace Pole.Orleans.Provider.EntityframeworkCore { public static class GrainStorageSiloHostBuilderExtensions { public static ISiloHostBuilder AddEfGrainStorageAsDefault(this ISiloHostBuilder builder) where TContext : DbContext { return builder.AddEfGrainStorage(ProviderConstants.DEFAULT_STORAGE_PROVIDER_NAME); } public static ISiloHostBuilder AddEfGrainStorage(this ISiloHostBuilder builder, string providerName) where TContext : DbContext { return builder .ConfigureServices(services => { services.AddEfGrainStorage(providerName); }); } public static ISiloBuilder AddEfGrainStorageAsDefault(this ISiloBuilder builder) where TContext : DbContext { return builder.AddEfGrainStorage(ProviderConstants.DEFAULT_STORAGE_PROVIDER_NAME); } public static ISiloBuilder AddEfGrainStorage(this ISiloBuilder builder, string providerName) where TContext : DbContext { return builder .ConfigureServices(services => { services.AddEfGrainStorage(providerName); }); } } }