예제 #1
0
        /// <summary>
        /// Vuelve a cargar el archivo de configuracion desde el origen de datos
        /// </summary>
        /// <param name="configProvider">Nombre del proveedor configurado</param>
        /// <returns></returns>
        public static ConfigurationFile RefreshConfigurationFile(string configProvider)
        {
            ConfigProviderElement provider = GetProvider(configProvider);

            if (provider == null)
            {
                return(null);
            }
            switch (provider.ConfigProviderType)
            {
            case ConfigProviderType.local:
            {
                return(LocalFileConfigurationManager.RefreshConfigurationFile(provider));
            }

            case ConfigProviderType.sqldatabase:
            {
                return(DatabaseConfigManager.RefreshConfigurationFile(provider));
            }

            case ConfigProviderType.servicewrapper:
            {
                ServiceConfigurationManager.RefreshConfigurationFile(provider); break;
            }
            }
            return(null);
        }
예제 #2
0
        /// <summary>
        /// Realiza cambios a una propiedad.-
        /// </summary>
        /// <param name="configProvider">Nombre del proveedor de configuracion</param>
        /// <param name="groupName">Nombre del grupo donde se encuentra la propiedad</param>
        /// <param name="property">Propiedad actualizada. Este objeto puede contener todos sus valores modifcados</param>
        /// <param name="propertyName">Nombre de la propiedad que se mofdifico.- Este valor es el original sin modificacion</param>
        internal static void ChangeProperty(string configProvider, string groupName, Key property, string propertyName)
        {
            ConfigProviderElement provider = GetProvider(configProvider);

            if (provider == null)
            {
                return;
            }
            switch (provider.ConfigProviderType)
            {
            case ConfigProviderType.local:
            {
                LocalFileConfigurationManager.ChangeProperty(provider, groupName, property, propertyName); break;
            }

            case ConfigProviderType.sqldatabase:
            {
                DatabaseConfigManager.ChangeProperty(provider, groupName, property, propertyName); break;
            }

            case ConfigProviderType.servicewrapper:
            {
                ServiceConfigurationManager.ChangeProperty(provider, groupName, property, propertyName); break;
            }
            }
        }
예제 #3
0
        /// <summary>
        /// Agrega un grupo al archivo de configuracion.-
        /// Si el grupo existe se retorna una TecnicalExeption
        /// </summary>
        /// <param name="configProvider">Nombre del proveedor de configuracion</param>
        /// <param name="group">Objeto tipo Grupo que se agregara</param>
        internal static void AddGroup(string configProvider, Group group)
        {
            ConfigProviderElement provider = GetProvider(configProvider);

            if (provider == null)
            {
                return;
            }
            switch (provider.ConfigProviderType)
            {
            case ConfigProviderType.local:
            {
                LocalFileConfigurationManager.AddGroup(provider, group); break;
            }

            case ConfigProviderType.sqldatabase:
            {
                DatabaseConfigManager.AddGroup(provider, group); break;
            }

            case ConfigProviderType.servicewrapper:
            {
                ServiceConfigurationManager.AddGroup(provider, group); break;
            }
            }
        }
예제 #4
0
        /// <summary>
        /// Obtiene un grupo determinado en el archivo de configuracion
        /// </summary>
        /// <param name="configProvider">Nombre del proveedor de configuracion</param>
        /// <param name="pGroupName">Nombre del grupo a obtener</param>
        /// <returns>Group</returns>
        /// <Author>Marcelo Oviedo</Author>
        public static Group GetGroup(string configProvider, string pGroupName)
        {
            ConfigProviderElement provider = GetProvider(configProvider);

            if (provider == null)
            {
                return(null);
            }
            switch (provider.ConfigProviderType)
            {
            case ConfigProviderType.local:
            {
                return(LocalFileConfigurationManager.GetGroup(configProvider, pGroupName));
            }

            case ConfigProviderType.sqldatabase:
            {
                return(DatabaseConfigManager.GetGroup(configProvider, pGroupName));
            }

            case ConfigProviderType.servicewrapper:
            {
                return(ServiceConfigurationManager.GetGroup(configProvider, pGroupName));
            }
            }
            return(null);
        }
예제 #5
0
        /// <summary>
        /// Obtiene una propiedad determinada de un archivo de configuracion .-
        /// </summary>
        /// <param name="configProvider">Nombre del proveedor de configuracion</param>
        /// <param name="pGroupName">Nombre del grupo donde se encuentra la propiedad</param>
        /// <param name="pPropertyName">Nombre de la propiedad a obtener</param>
        /// <returns>String con la propiedad</returns>
        /// <Author>Marcelo Oviedo</Author>
        public static Key GetKey(string configProvider, string pGroupName, string pPropertyName)
        {
            ConfigProviderElement provider = GetProvider(configProvider);

            if (provider == null)
            {
                return(null);
            }


            switch (provider.ConfigProviderType)
            {
            case ConfigProviderType.local:
            {
                return(LocalFileConfigurationManager.GetKey(configProvider, pGroupName, pPropertyName));
            }

            case ConfigProviderType.sqldatabase:
            {
                return(DatabaseConfigManager.GetKey(configProvider, pGroupName, pPropertyName));
            }
                //case ConfigProviderType.servicewrapper:
                //    {
                //        return ServiceConfigurationManager.GetProperty(configProvider, pGroupName, pPropertyName); ;
                //    }
            }
            return(null);
        }
        /// <summary>
        /// Obtiene un grupo determinado en el archivo de configuracion
        /// </summary>
        /// <param name="configProvider">Proveedor de configuuracion</param>
        /// <param name="groupName">Nombre del grupo</param>
        /// <returns>Hashtable con los grupos contenidos en el archivo de configuracion</returns>
        /// <Author>Marcelo Oviedo</Author>
        internal static Group GetGroup(string configProvider, string groupName)
        {
            ConfigProviderElement provider = ConfigurationManager.GetProvider(configProvider);

            Group wGroup = null;

            try
            {
                using (FwkDatacontext dc = new FwkDatacontext(DatabaseConfigManager.GetCnnString(provider)))
                {
                    var properties_group = dc.fwk_ConfigManagers.Where(config =>
                                                                       config.ConfigurationFileName.ToLower().Equals(provider.BaseConfigFile.ToLower()) &&
                                                                       config.group.ToLower().Equals(groupName.ToLower())
                                                                       );

                    if (properties_group == null)
                    {
                        TechnicalException te = new TechnicalException(string.Concat(new String[] { "No se encuentra el grupo ", groupName, " en el archivo de configuración: ", provider.BaseConfigFile }));
                        te.ErrorId = "8006";
                        Fwk.Exceptions.ExceptionHelper.SetTechnicalException(te, typeof(ConfigurationManager));
                        throw te;
                    }

                    if (properties_group.Count() != 0)
                    {
                        wGroup      = new Group();
                        wGroup.Name = groupName;
                        wGroup.Keys = new Keys();
                        Key wKey = new Key();

                        foreach (var item in properties_group)
                        {
                            wKey            = new Key();
                            wKey.Name       = item.key;
                            wKey.Value.Text = item.value;
                            wKey.Encrypted  = item.encrypted;
                            wGroup.Keys.Add(wKey);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                TechnicalException te = new TechnicalException("Problemas con Fwk.Configuration al realizar operaciones con la base de datos \r\n", ex);
                ExceptionHelper.SetTechnicalException <DatabaseConfigManager>(te);
                te.ErrorId = "8200";
                throw te;
            }



            return(wGroup);
        }
예제 #7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sourceConfigurationFile"></param>
        /// <param name="provider">Destination provider </param>
        public static void Import(ConfigurationFile sourceConfigurationFile, ConfigProviderElement provider)
        {
            if (provider == null)
            {
                return;
            }
            switch (provider.ConfigProviderType)
            {
            case ConfigProviderType.local:
            {
                throw new NotImplementedException("Funcionalidad de exportacion no impolementada");
            }

            case ConfigProviderType.sqldatabase:
            {
                DatabaseConfigManager.Import(provider, sourceConfigurationFile); break;
            }

            case ConfigProviderType.servicewrapper:
            {
                throw new NotImplementedException("Funcionalidad de exportacion no impolementada");
            }
            }
        }