You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.0 KiB
35 lines
1.0 KiB
2 years ago
|
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<SwaggerGenOptions>
|
||
|
{
|
||
|
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" });
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|