using System.Linq; using Microsoft.AspNetCore.Mvc.ApiExplorer; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using Microsoft.OpenApi.Models; using Swashbuckle.AspNetCore.SwaggerGen; namespace Win_in.Sfs.Shared.Host; public class SwaggerConfigureOptions : IConfigureOptions { private readonly IApiDescriptionGroupCollectionProvider _provider; public SwaggerConfigureOptions(IApiDescriptionGroupCollectionProvider provider) { this._provider = provider; } public void Configure(SwaggerGenOptions options) { var list = _provider.ApiDescriptionGroups.Items.ToList(); foreach (var description in list) { if (description.GroupName is not null) { options.SwaggerDoc(description.GroupName, new OpenApiInfo { Title = description.GroupName }); } else { options.SwaggerDoc("Default", new OpenApiInfo { Title = "Default" }); } } } }