Files
Examples/GerstITS.Examples.Api/Common/Configurations/WebApiConfiguration.Swagger.cs
2025-09-22 17:10:31 +02:00

48 lines
1.6 KiB
C#

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using GerstITS.Common;
using GerstITS.System.Configurations;
using GerstITS.Web.Api.Swagger;
using Microsoft.Extensions.Configuration;
namespace GerstITS.Examples.Api.Configurations;
internal sealed class SwaggerConfiguration : ISwaggerConfiguration
{
#region Constructors
public SwaggerConfiguration(string parentPrefix,
Microsoft.Extensions.Configuration.IConfiguration configuration)
{
var prefix = $"{parentPrefix}:{this.ToConfigurationPrefix()}";
var currentAssembly = typeof(WebApiConfiguration).Assembly;
var fileVersionInfo = FileVersionInfo.GetVersionInfo(currentAssembly.Location);
Name = fileVersionInfo.ProductName;
Company = fileVersionInfo.CompanyName;
SupportEMail = configuration.GetValue<string>($"{prefix}:{nameof(SupportEMail)}");
TermsOfService = configuration.GetValue<Uri>($"{prefix}:{nameof(TermsOfService)}");
Release = currentAssembly.GetName().Version;
License = new LicenseConfiguration(prefix, configuration);
Securities = new OpenApiSecuritySchemeConfiguration().AsEnumerable()
.ToList();
}
#endregion
#region ISwaggerConfiguration
public string Name { get; }
public string Company { get; }
public string SupportEMail { get; }
public Uri TermsOfService { get; }
public Version Release { get; }
public IEnumerable<IOpenApiSecuritySchemeConfiguration> Securities { get; }
public ILicense License { get; }
#endregion
}