48 lines
1.6 KiB
C#
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
|
|
} |