private static void Startup() { var serviceCollection = new ServiceCollection(); var infrastructure = ConfigurationManager.AppSettings["Infractructure"]; if (infrastructure == "InMemory") { serviceCollection.AddSingleton <IScriptRepository, InMemoryScriptRepository>(); serviceCollection.AddSingleton <IQuizRepository, InMemoryQuizRepository>(); } else if (infrastructure == "EntityFramework") { var builder = new DbContextOptionsBuilder <ScriptQuizDbContext>(); var connectionString = ConfigurationManager.AppSettings["ConnectionString"]; builder.UseSqlServer(connectionString); var options = builder.Options; var context = new ScriptQuizDbContext(options); serviceCollection.AddSingleton <IScriptRepository>(sp => new EntityFrameworkScriptRepository(context)); serviceCollection.AddSingleton <IQuizRepository>(sp => new EntityFrameworkQuizRepository(context)); } else { throw new NotSupportedException(infrastructure + " is not registerd."); } serviceCollection.AddTransient <IScriptApplicationService, ScriptApplicationService>(); serviceCollection.AddTransient <IQuizApplicationService, QuizApplicationService>(); serviceProvider = serviceCollection.BuildServiceProvider(); }
public void Run(IContainerRegistry containerRegistry) { var builder = new DbContextOptionsBuilder <ScriptQuizDbContext>(); var connectionString = ConfigurationManager.AppSettings["ConnectionString"]; builder.UseSqlServer(connectionString); var options = builder.Options; var context = new ScriptQuizDbContext(options); containerRegistry.RegisterInstance <IScriptRepository>(new EntityFrameworkScriptRepository(context)); containerRegistry.RegisterInstance <IQuizRepository>(new EntityFrameworkQuizRepository(context)); }
public void Run(IServiceCollection services) { var builder = new DbContextOptionsBuilder <ScriptQuizDbContext>(); var connectionString = configuration.GetConnectionString("DefaultConnection"); builder.UseSqlServer(connectionString); var options = builder.Options; var context = new ScriptQuizDbContext(options); services.AddSingleton <IScriptRepository>(sp => new EntityFrameworkScriptRepository(context)); services.AddTransient <IScriptApplicationService, ScriptApplicationService>(); services.AddSingleton <IQuizRepository>(sp => new EntityFrameworkQuizRepository(context)); services.AddTransient <IQuizApplicationService, QuizApplicationService>(); }
public EntityFrameworkScriptRepository(ScriptQuizDbContext context) { this.context = context; }