using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Shared.Utils.Variables_Entorno; namespace Shared.Utils { public static class EnviromentUtils { public static Dictionary GetVarEnviromentDict(string key) { string variableEnv = Environment.GetEnvironmentVariable(key); if (string.IsNullOrEmpty(variableEnv)) { throw new ArgumentException($"La variable de entorno '{key}' no está definida."); } var dictionary = new Dictionary(); var pares = variableEnv.Split(';'); foreach (var data in pares) { if(data == null || data.Equals("")) { continue; } var div = data.IndexOf('='); var keyValue = data.Substring(0, div).ToUpper(); var value = data.Substring(div+1); if (!string.IsNullOrEmpty(keyValue) && !string.IsNullOrEmpty(value)) { dictionary.Add(keyValue, value); } } return dictionary; } public static Credenciales_DGA GetEnvCredencialesDGA(string env) { Dictionary dictEnv = GetVarEnviromentDict(env); return new Credenciales_DGA { RutEmpresa = dictEnv.ContainsKey("RUTEMPRESA") ? dictEnv["RUTEMPRESA"] : string.Empty, RutUsuario = dictEnv.ContainsKey("RUTUSUARIO") ? dictEnv["RUTUSUARIO"] : string.Empty, Password = dictEnv.ContainsKey("PASSWORD") ? dictEnv["PASSWORD"] : string.Empty }; } public static BD_Conexion GetEnvBDConexion(string env) { return new BD_Conexion { stringConnection = Environment.GetEnvironmentVariable(env) ?? string.Empty }; } public static NexusApiUrl GetEnvNexusApiUrl(string env) { Dictionary dictEnv = GetVarEnviromentDict(env); return new NexusApiUrl { ApiUrl = dictEnv.ContainsKey("URL") ? dictEnv["URL"] : string.Empty, ApiKey = dictEnv.ContainsKey("APIKEY") ? dictEnv["APIKEY"] : string.Empty, Version = dictEnv.ContainsKey("VERSION") ? dictEnv["VERSION"] : string.Empty, DataSource = dictEnv.ContainsKey("DATASOURCE") ? dictEnv["DATASOURCE"] : string.Empty, Resolution = dictEnv.ContainsKey("RESOLUTION") ? dictEnv["RESOLUTION"] : string.Empty }; } public static SubterraneaApiUrl GetEnvSubterraneaApiUrl(string env) { Dictionary dictEnv = GetVarEnviromentDict(env); return new SubterraneaApiUrl { BaseUrl = dictEnv.ContainsKey("URL") ? dictEnv["URL"] : string.Empty, EndPoint = dictEnv.ContainsKey("ENDPOINT") ? dictEnv["ENDPOINT"] : string.Empty }; } } }