in src/SimplCommerce.WebHost/Startup.cs [39:91]
public void ConfigureServices(IServiceCollection services)
{
GlobalConfiguration.WebRootPath = _hostingEnvironment.WebRootPath;
GlobalConfiguration.ContentRootPath = _hostingEnvironment.ContentRootPath;
services.AddModules();
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddCustomizedDataStore(_configuration);
services.AddCustomizedIdentity(_configuration);
services.AddHttpClient();
services.AddTransient(typeof(IRepository<>), typeof(Repository<>));
services.AddTransient(typeof(IRepositoryWithTypedId<,>), typeof(RepositoryWithTypedId<,>));
services.AddScoped<SlugRouteValueTransformer>();
services.AddCustomizedLocalization();
services.AddCustomizedMvc(GlobalConfiguration.Modules);
services.Configure<RazorViewEngineOptions>(
options => { options.ViewLocationExpanders.Add(new ThemeableViewLocationExpander()); });
services.Configure<WebEncoderOptions>(options =>
{
options.TextEncoderSettings = new TextEncoderSettings(UnicodeRanges.All);
});
services.AddScoped<ITagHelperComponent, LanguageDirectionTagHelperComponent>();
services.AddTransient<IRazorViewRenderer, RazorViewRenderer>();
services.AddAntiforgery(options => options.HeaderName = "X-XSRF-Token");
services.AddCloudscribePagination();
foreach(var module in GlobalConfiguration.Modules)
{
var moduleInitializerType = module.Assembly.GetTypes()
.FirstOrDefault(t => typeof(IModuleInitializer).IsAssignableFrom(t));
if ((moduleInitializerType != null) && (moduleInitializerType != typeof(IModuleInitializer)))
{
var moduleInitializer = (IModuleInitializer)Activator.CreateInstance(moduleInitializerType);
services.AddSingleton(typeof(IModuleInitializer), moduleInitializer);
moduleInitializer.ConfigureServices(services);
}
}
services.AddScoped<ServiceFactory>(p => p.GetService);
services.AddScoped<IMediator, Mediator>();
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "SimplCommerce API", Version = "v1" });
});
}