using Core.Blueprint.External; using Microsoft.Extensions.Configuration; namespace Core.Inventory.External.GatewayConfigurations { public class GatewaySettingsConfigurations { private static GatewayConfiguration GatewayConfigurations { get; set; } = new GatewayConfiguration(); private readonly IConfiguration _configuration; public GatewaySettingsConfigurations(IConfiguration configuration) { _configuration = configuration; SetDashboardServiceAPIEndpoint(); } public static InventoryServiceAPI GetInventoryServiceAPIEndpoint() { return GatewayConfigurations.InventoryService; } private GatewayConfiguration SetDashboardServiceAPIEndpoint() { IConfigurationSection source; var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? string.Empty; if (environment == "Local") source = _configuration.GetSection("LocalGateways"); else source = _configuration.GetSection("Gateways"); var endpoint = source["InventoryService"] ?? string.Empty; if (string.IsNullOrEmpty(endpoint)) throw new Exception("Inventory Service endpoint is empty or null"); GatewayConfigurations.InventoryService = new InventoryServiceAPI() { Endpoint = new BaseEndpoint() { Uri = new Uri(endpoint), Url = endpoint, Token = string.Empty, APIName = "Inventory Service" } }; return GatewayConfigurations; } } }