using Microsoft.Extensions.Options; using Microsoft.OpenApi.Models; using Swashbuckle.AspNetCore.SwaggerGen; using System.Collections.Generic; using Volo.Abp.MultiTenancy; using Volo.Abp.AspNetCore.MultiTenancy; namespace LY.MicroService.Applications.Single; public class TenantHeaderParamter : IOperationFilter { private readonly AbpMultiTenancyOptions _multiTenancyOptions; private readonly AbpAspNetCoreMultiTenancyOptions _aspNetCoreMultiTenancyOptions; public TenantHeaderParamter( IOptions multiTenancyOptions, IOptions aspNetCoreMultiTenancyOptions) { _multiTenancyOptions = multiTenancyOptions.Value; _aspNetCoreMultiTenancyOptions = aspNetCoreMultiTenancyOptions.Value; } public void Apply(OpenApiOperation operation, OperationFilterContext context) { if (_multiTenancyOptions.IsEnabled) { operation.Parameters = operation.Parameters ?? new List(); operation.Parameters.Add(new OpenApiParameter { Name = _aspNetCoreMultiTenancyOptions.TenantKey, In = ParameterLocation.Header, Description = "Tenant Id in http header", Required = false }); } } }