/// <summary> /// Seter el valor de una clave del App.config /// </summary> /// <param name="key">Clave a guardar</param> /// <param name="value">Valor a guardar</param> /// <param name="tipo">Tipo de alcance. Del enum alcance</param> /// <param name="enc">Encripta o no</param> /// <returns>Regresa true o false</returns> /// <example> /// <code> /// cFunciones.AppSetting App = new cFunciones.AppSetting; /// App.SetearAppSettings("ambiente", "hola que tal", cFunciones.alcance.desarrollo, cFunciones.encriptacion.Si); /// </code> /// </example> public bool SetearAppSettings(string key, string value, Alcance tipo = Alcance.general, Encriptacion enc = Encriptacion.No) { try { var configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); var settings = configFile.AppSettings.Settings; switch (tipo) { case Alcance.usuario: key = $"{key}.{Environment.UserName.ToLower()}"; break; case Alcance.terminal: key = $"{key}.{Environment.MachineName.ToLower()}"; break; case Alcance.desarrollo: key = $"{key}.gds"; break; } if (enc == Encriptacion.Si && value != "") { cFunciones.Seguridad seg = new cFunciones.Seguridad(); value = seg.Encriptar(value); } if (settings[key] == null) { settings.Add(key, value); } else { settings[key].Value = value; } configFile.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name); return(true); } catch (ConfigurationErrorsException) { return(false); } }
/// <summary> /// Obtener el valor de una clave del App.config /// </summary> /// <param name="key">Clave a buscar</param> /// /// /// <param name="tipo">Tipo de alcance</param> /// /// /// <param name="enc">Encripta o no</param> /// <returns>Regresa el valor o null si no lo encuentra</returns> /// <example> /// <code> /// cFunciones.AppSetting App = new cFunciones.AppSetting; /// string vambiente = App.ObtenerAppSettings("ambiente", cFunciones.alcance.desarrollo, cFunciones.encriptacion.Si); /// </code> /// </example> public string ObtenerAppSettings(string key, Alcance tipo = Alcance.general, Encriptacion enc = Encriptacion.No) { try { switch (tipo) { case Alcance.usuario: key = $"{key}.{Environment.UserName.ToLower()}"; break; case Alcance.terminal: key = $"{key}.{Environment.MachineName.ToLower()}"; break; case Alcance.desarrollo: key = $"{key}.gds"; break; default: break; } var appSettings = ConfigurationManager.AppSettings; string result = appSettings[key] ?? ""; if (enc == Encriptacion.Si && result != "") { cFunciones.Seguridad seg = new cFunciones.Seguridad(); result = seg.DesEncriptar(result); } return(result); } catch (ConfigurationErrorsException) { return(""); } }