public TenantContainerBuilder(IServiceCollection defaultServices, ITenantContainerAdaptor parentContainer, Action <TTenant, IServiceCollection> configureTenant, ITenantContainerEventsPublisher <TTenant> containerEventsPublisher) { _defaultServices = defaultServices; _parentContainer = parentContainer; _configureTenant = configureTenant; _containerEventsPublisher = containerEventsPublisher; }
public TenantRequestContainerAccessor( ILogger <TenantRequestContainerAccessor <TTenant> > logger, ITenantContainerAccessor <TTenant> tenantContainerAccessor, ITenantContainerEventsPublisher <TTenant> containerEventsPublisher) { _containerEventsPublisher = containerEventsPublisher; TenantRequestContainer = new Lazy <Task <ITenantContainerAdaptor> >(async() => { var tenantContainer = await tenantContainerAccessor.TenantContainer.Value; if (tenantContainer == null) { return(null); } var requestContainer = tenantContainer.CreateNestedContainer($"{tenantContainer.ContainerName}"); logger.LogDebug("Creating container name: {ContainerName}", tenantContainer.ContainerName); _containerEventsPublisher?.PublishNestedTenantContainerCreated(requestContainer); return(requestContainer); }); }