Esempio n. 1
0
        public ContainerBuilderOptions(MultitenancyOptionsBuilder <TTenant> builder)
        {
            Builder = builder;
            ContainerEventsOptions = new TenantContainerEventsOptions <TTenant>(this);

            builder.Services.AddSingleton <ITenantContainerFactory <TTenant>, TenantContainerBuilderFactory <TTenant> >();
            builder.Services.AddScoped <ITenantContainerAccessor <TTenant>, TenantContainerAccessor <TTenant> >();
            builder.Services.AddScoped <ITenantRequestContainerAccessor <TTenant>, TenantRequestContainerAccessor <TTenant> >();

            builder.Services.AddSingleton <ITenantContainerEventsPublisher <TTenant> >((sp) =>
            {
                var events = new TenantContainerEventsPublisher <TTenant>();

                var containerEventsOptions = this.ContainerEventsOptions;
                foreach (var item in containerEventsOptions.TenantContainerCreatedCallbacks)
                {
                    events.TenantContainerCreated += item;
                }

                foreach (var item in containerEventsOptions.NestedTenantContainerCreatedCallbacks)
                {
                    events.NestedTenantContainerCreated += item;
                }
                return(events);
            });
            builder.Services.AddSingleton <ITenantContainerEvents <TTenant> >((sp) =>
            {
                return(sp.GetRequiredService <ITenantContainerEventsPublisher <TTenant> >());
            });
        }
Esempio n. 2
0
 public ContainerBuilderOptions(MultitenancyOptionsBuilder <TTenant> builder)
 {
     Builder = builder;
     builder.Services.AddSingleton <ITenantContainerFactory <TTenant>, TenantContainerBuilderFactory <TTenant> >();
     builder.Services.AddScoped <ITenantContainerAccessor <TTenant>, TenantContainerAccessor <TTenant> >();
     builder.Services.AddScoped <ITenantRequestContainerAccessor <TTenant>, TenantRequestContainerAccessor <TTenant> >();
 }
Esempio n. 3
0
 public TenantHostingEnvironmentOptionsBuilder(MultitenancyOptionsBuilder <TTenant> builder, IHostingEnvironment hostingEnvironment)
 {
     Builder = builder;
     _parentHostingEnvironment = hostingEnvironment;
     // Override the singleton registration of IHostingEnvironment with a scoped version so that we can configure it for the tenant
     // early on in each request.
     Builder.Services.AddScoped <IHostingEnvironment>((sp) =>
     {
         return(new TenantHostingEnvironment <TTenant>(hostingEnvironment));
     });
 }
 public TenantPipelineOptionsBuilder(MultitenancyOptionsBuilder <TTenant> builder)
 {
     _builder = builder;
 }
 public TenantFileProviderOptionsBuilder(
     MultitenancyOptionsBuilder <TTenant> builder)
 {
     Builder = builder;
 }
 public static MultitenancyOptionsBuilder <TTenant> AddSystemWeb <TTenant>(this MultitenancyOptionsBuilder <TTenant> builder)
     where TTenant : class
 {
     builder.Services.AddSingleton <IHttpContextProvider, HttpContextProvider>();
     return(builder);
 }