Beispiel #1
0
        /// <summary>Регистрация сервисов в контейнере приложения</summary>
        public void ConfigureServices(IServiceCollection services)
        {
            services
            // Регистрируем контекст работы с базой данных
            .AddDbContext <AnketTestContext>(options => options.UseSqlServer(Configuration.GetConnectionString("AnketTest.LocalDB")), ServiceLifetime.Transient);

            services
            // поддержка опций (для загрузки блоков конфигурации appsettings
            .AddOptions();

            services
            // Грузим информацию о настройках Azure Blobs (в конструкторах писать IOptions<ZoneConfig>)
            .Configure <AzureBlobsParameters>(Configuration.GetSection("AzureBlobsParameters"));

            services
            // Регистрируем Azure Blobs
            .AddAzureClients(builder =>
            {
                // Добавляем клиента BlobServiceClient
                builder.AddBlobServiceClient(Configuration.GetConnectionString("AnketTest.AzureStorage"));
            });

            services
            // создаем контейнер AzureBlobs, если его не было
            .CreateAzureBlobsContainerIfNotExists();

            services
            // Добавляем поддержку контроллеров (без вьюх)
            .AddControllers()
            // настройка пакета system.Text.Json (вместо Newtonsoft) таким образом, чтобы все идентификаторы не перестраивались в CamelCase а оставались без изменения
            .AddJsonOptions(opt =>
            {
                opt.JsonSerializerOptions.PropertyNamingPolicy = null;
                opt.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());
            });

            services
            // Добавляем настройки Swagger
            .AddSwaggerGen(c =>
            {
                SwaggerFiller.FillGenOptions(c);
            });
        }
Beispiel #2
0
        /// <summary>Настройка HTTP request pipeline.</summary>
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            // Добавляем заголовок, определяющий номер узла в кластере и версию ПО
            app.Use((context, next) =>
            {
                context.Response.Headers.Add(
                    "X-Web",
                    System.Environment.MachineName + "/" +
                    System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString());
                return(next.Invoke());
            });

            // отрисовываем Swagger UI
            SwaggerFiller.FillApplicationBuilder(app);

            app.UseRouting();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }