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($"{prefix}:{nameof(SupportEMail)}"); TermsOfService = configuration.GetValue($"{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 Securities { get; } public ILicense License { get; } #endregion }