Files
Examples/GerstITS.Examples.Api/Common/Configurations/WebApiConfiguration.Swagger.cs
2021-07-15 22:31:00 +02:00

45 lines
1.6 KiB
C#

using System;
using System.Diagnostics;
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);
Security = new OpenApiSecuritySchemeConfiguration();
}
#endregion
#region ISwaggerConfiguration
public string Name { get; }
public string Company { get; }
public string SupportEMail { get; }
public Uri TermsOfService { get; }
public Version Release { get; }
public ILicense License { get; }
public IOpenApiSecuritySchemeConfiguration Security { get; }
#endregion
}
}