Пример #1
0
        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));
        }
Пример #2
0
        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>());
        }