using GerstITS.System.Configurations; using GerstITS.Web.Api.Builder; using Microsoft.Extensions.Configuration; namespace BakeTronic.Web.Api.Configurations { internal sealed class CorsPolicyConfiguration : ICorsPolicy, GerstITS.System.Configurations.IConfiguration { #region Constructors public CorsPolicyConfiguration(string parentPrefix, Microsoft.Extensions.Configuration.IConfiguration configuration) { var prefix = $"{parentPrefix}:{this.ToConfigurationPrefix()}"; AllowCredentials = configuration.GetValue($"{prefix}:{nameof(AllowCredentials)}", false); AllowedOrigins = configuration.GetSection($"{prefix}:{nameof(AllowedOrigins)}").Get() ?? new string[0]; AllowedHeaders = configuration.GetSection($"{prefix}:{nameof(AllowedHeaders)}").Get() ?? new string[0]; AllowedMethods = configuration.GetSection($"{prefix}:{nameof(AllowedMethods)}").Get() ?? new string[0]; } #endregion #region ICorsPolicy public bool AllowCredentials { get; } public string[] AllowedOrigins { get; set; } public string[] AllowedHeaders { get; set; } public string[] AllowedMethods { get; set; } #endregion } }