using GerstITS.System.Configurations; using GerstITS.Web.Api.Builder; using Microsoft.Extensions.Configuration; namespace GerstITS.Examples.Api.Configurations; internal sealed class ServerConfiguration : IServerConfiguration { #region Constructors public ServerConfiguration(string parentPrefix, Microsoft.Extensions.Configuration.IConfiguration configuration) { var prefix = $"{parentPrefix}:{this.ToConfigurationPrefix()}"; UseHttpsRedirection = configuration.GetValue($"{prefix}:{nameof(UseHttpsRedirection)}"); UseHsts = configuration.GetValue($"{prefix}:{nameof(UseHsts)}"); UseCors = configuration.GetValue($"{prefix}:{nameof(UseCors)}"); Headers = new WebApiHeadersConfiguration(prefix, configuration); CorsPolicy = new CorsPolicyConfiguration(prefix, configuration); } #endregion #region IServerConfiguration public bool UseHttpsRedirection { get; } public bool UseHsts { get; } public bool UseCors { get; } public IHeaderConfiguration Headers { get; } public ICorsPolicy CorsPolicy { get; } #endregion }