public void ConfigureServices(IServiceCollection services) { services.AddMvc(options => { // setup json output serializer options.OutputFormatters.Clear(); options.OutputFormatters.Add(JsonFormatterFactory.Create()); // add filters options.Filters.Add(new ValidateModelAttribute()); }); services.AddEntityFramework() .AddSqlServer() .AddDbContext <ConfigContext>(options => options.UseSqlServer(Configuration.GetSection("Data:DefaultConnection:ConnectionString").Value)); }
public IServiceProvider ConfigureServices(IServiceCollection services) { services.Configure <AppSettings>(Configuration.GetSection("AppSettings")); services.AddCors(); services.AddMvc(options => { // setup json output serializer options.OutputFormatters.Clear(); options.OutputFormatters.Add(JsonFormatterFactory.Create()); // add filters options.Filters.Add(new ValidateModelAttribute()); }); services.AddSwagger(c => { c.SwaggerGeneratorOptions.Schemes = new[] { "http", "https" }; c.SwaggerGeneratorOptions.BasePath = "/"; c.SwaggerGeneratorOptions.SingleApiVersion(new Info { Version = "v1", Title = "BookPortal Main API", Description = "This is a basic BookPortal API. The Api still in active development." }); c.SchemaGeneratorOptions.DescribeAllEnumsAsStrings = true; }); services.AddEntityFramework() .AddSqlServer() .AddDbContext <BookContext>(options => options.UseSqlServer(Configuration.GetSection("Data:DefaultConnection:ConnectionString").Value)); services.AddApplicationInsightsTelemetry(Configuration); ContainerBuilder builder = new ContainerBuilder(); var dataAccess = Assembly.GetExecutingAssembly(); // register services builder.RegisterAssemblyTypes(dataAccess) .Where(t => t.GetInterfaces().Any(i => i.IsAssignableFrom(typeof(IBusinessService)))) .AsImplementedInterfaces() .InstancePerLifetimeScope(); // register repositories builder.RegisterAssemblyTypes(dataAccess) .Where(t => t.Name.EndsWith("Repository")) .InstancePerLifetimeScope(); builder.RegisterType <ConnectionFactory>() .As <IConnectionFactory>() .WithParameter("connectionString", Configuration.GetSection("Data:DefaultConnection:ConnectionString").Value) .InstancePerLifetimeScope(); builder.RegisterInstance(new RedisCache(new RedisCacheOptions { Configuration = Configuration.GetSection("RedisCache").Value })); builder.RegisterType <MemoryCache>().As <IMemoryCache>(); builder.Populate(services); var container = builder.Build(); return(container.Resolve <IServiceProvider>()); }