using Microsoft.Extensions.DependencyInjection; using Microsoft.OpenApi.Models; using Company.Project.Shared; using Volo.Abp; using Volo.Abp.AspNetCore.MultiTenancy; using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.Autofac; using Volo.Abp.Modularity; using Volo.Abp.MultiTenancy; using Ocelot.DependencyInjection; using Ocelot.Middleware; namespace Company.Project.InternalGateway; [DependsOn( typeof(AbpAutofacModule), typeof(AbpAspNetCoreMvcModule), typeof(AbpAspNetCoreMultiTenancyModule) )] public class InternalGatewayHostModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) { var configuration = context.Services.GetConfiguration(); Configure(options => { options.IsEnabled = ProjectConsts.IsMultiTenancyEnabled; }); context.Services.AddSwaggerGen(options => { options.SwaggerDoc("v1", new OpenApiInfo { Title = "Internal Gateway API", Version = "v1" }); }); context.Services.AddOcelot(configuration); } public override void OnApplicationInitialization(ApplicationInitializationContext context) { var app = context.GetApplicationBuilder(); app.UseRouting(); app.UseSwagger(); app.UseSwaggerUI(options => options.SwaggerEndpoint("/swagger/v1/swagger.json", "Internal Gateway")); app.UseOcelot().Wait(); } }