// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddDbContext <ApplicationDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); services.AddIdentity <ApplicationUser, IdentityRole>() .AddEntityFrameworkStores <ApplicationDbContext>() .AddDefaultTokenProviders(); // Add application services. services.AddTransient <IEmailSender, EmailSender>(); services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>(); services.AddSingleton <NHibernateSessionStorage, NHibernateSessionStorage>(); //services.AddTransient(x => (NHibernate.ISession)x.GetRequiredService<NHibernateSessionStorage>().RetrieveSession()); services.AddScoped(x => NHibernateConfiguration.CreateAndOpenSession()); //services.AddTransient<TodoRepository, TodoRepository>(); services.AddScoped <TransactionAttribute>(); IEnumerable <Type> repositories = Assembly.GetExecutingAssembly().GetTypes().Where(IsRepository); foreach (Type type in repositories) { services.AddTransient(type, type); } services.AddMvc(options => { options.UseHtmlEncodeModelBinding(); }); services.AddSingleton <ITempDataProvider, CookieTempDataProvider>(); services.AddSession(); services.AddMemoryCache(); services.AddDistributedMemoryCache(); InitializeNHibernate(); }
public RespositoryTestBase() { NHibernateConfiguration.Init( SQLiteConfiguration.Standard.UsingFile("test_GetOrganized"), //MsSqlConfiguration.MsSql2008.ConnectionString( //builder => builder.Server("localhost").Database("test_GetOrganized").TrustedConnection()), RebuildDatabase ); session = NHibernateConfiguration.CreateAndOpenSession(); }
private void OpenCurrent() { ISession session = NHibernateConfiguration.CreateAndOpenSession(); context.Items[CURRENT_SESSION_KEY] = session; }