public static ContainerBuilder InitializeContainer(ContainerBuilder builder = null)
{
if (builder == null)
{
builder = new ContainerBuilder();
}
if (isStarted)
{
return builder;
}
builder = WebApplicationContext.InitializeContainer(builder, Config);
builder.RegisterType<DefaultTextEncryptor>().As<ITextEncryptor>().SingleInstance();
builder.RegisterType<CmsModulesRegistration>()
.As<IModulesRegistration>()
.As<IWebModulesRegistration>()
.As<ICmsModulesRegistration>()
.SingleInstance();
builder.RegisterInstance(Config)
.As<ICmsConfiguration>()
.As<IWebConfiguration>()
.As<IConfiguration>()
.SingleInstance();
builder.RegisterType<DefaultCmsHost>()
.As<IWebApplicationHost>()
.As<ICmsHost>()
.SingleInstance();
RegisterCacheService(builder);
RegisterStorageService(builder);
isStarted = true;
return builder;
}