Integracion_DGA/SHARED/Utils/EnviromentUtils.cs

80 lines
3 KiB
C#
Raw Normal View History

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<string,string> 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<string, string>();
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<string,string> 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<string, string> 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<string, string> dictEnv = GetVarEnviromentDict(env);
return new SubterraneaApiUrl
{
BaseUrl = dictEnv.ContainsKey("URL") ? dictEnv["URL"] : string.Empty,
EndPoint = dictEnv.ContainsKey("ENDPOINT") ? dictEnv["ENDPOINT"] : string.Empty
};
}
}
}