Exemple #1
0
        /// <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);
            }
        }
Exemple #2
0
        /// <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("");
            }
        }