/// <summary>
        /// Obtiene una propiedad determinada de un archivo de configuracion .-
        /// </summary>
        /// <param name="configProvider">Proveedor de configuuracion</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>
        internal static string GetProperty(string configProvider, string pGroupName, string pPropertyName)
        {
            string wBaseConfigFile = String.Empty;

            ConfigProviderElement provider = ConfigurationManager.GetProvider(configProvider);


            ConfigurationFile wConfigurationFile = GetConfig(provider);


            Group wGroup = wConfigurationFile.Groups.GetFirstByName(pGroupName);

            if (wGroup == null)
            {
                TechnicalException te = new TechnicalException(string.Concat(new String[] { "No se encuentra el grupo ", pGroupName, " en la de configuración: ", wBaseConfigFile }));
                te.ErrorId = "8006";
                Fwk.Exceptions.ExceptionHelper.SetTechnicalException(te, typeof(LocalFileConfigurationManager));
                throw te;
            }
            Key wKey = wGroup.Keys.GetFirstByName(pPropertyName);

            if (wKey == null)
            {
                TechnicalException te = new TechnicalException(string.Concat(new String[] { "No se encuentra la propiedad ", pPropertyName, " en el grupo de propiedades: ", pGroupName, " en la de configuración: ", wBaseConfigFile }));
                te.ErrorId = "8007";
                Fwk.Exceptions.ExceptionHelper.SetTechnicalException(te, typeof(LocalFileConfigurationManager));
                throw te;
            }

            return(wKey.Value.Text);
        }
        /// <summary>
        /// Obtiene un grupo determinado en el archivo de configuracion
        /// </summary>
        /// <param name="configProvider">Proveedor de configuuracion</param>
        /// <param name="pGroupName"></param>
        /// <returns>Hashtable con los grupos contenidos en el archivo de configuracion</returns>
        /// <Author>Marcelo Oviedo</Author>
        internal static Group GetGroup(string configProvider, string pGroupName)
        {
            string wBaseConfigFile = string.Empty;

            ConfigProviderElement provider = ConfigurationManager.GetProvider(configProvider);


            ConfigurationFile wConfigurationFile = GetConfig(provider);

            //if (!wConfigurationFile.BaseConfigFile)
            //{
            //    TechnicalException te = new TechnicalException("El archivo solicitado no es un archivo de configuración válido.");
            //    te.ErrorId = "8005";
            //    Fwk.Exceptions.ExceptionHelper.SetTechnicalException(te, typeof(ConfigurationManager));
            //    throw te;
            //}

            Group wGroup = wConfigurationFile.Groups.GetFirstByName(pGroupName);

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


            return(wGroup);
        }
 /// <summary>
 /// Realiza cambios a una propiedad.-
 /// </summary>
 /// <param name="provider">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(ConfigProviderElement provider, string groupName, Key property, string propertyName)
 {
     try
     {
         using (FwkDatacontext dc = new FwkDatacontext(GetCnnString(provider)))
         {
             var prop = dc.fwk_ConfigManagers.Where(config =>
                                                    config.ConfigurationFileName.ToLower().Equals(provider.BaseConfigFile.ToLower()) &&
                                                    config.group.ToLower().Equals(groupName.ToLower()) &&
                                                    config.key.ToLower().Equals(propertyName.ToLower())
                                                    ).FirstOrDefault <fwk_ConfigManager>();
             prop.value     = property.Value.Text;
             prop.encrypted = property.Encrypted;
             prop.key       = property.Name;
             dc.SubmitChanges();
         }
     }
     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;
     }
 }
Beispiel #4
0
        public frmExport1(System.Collections.Specialized.ListDictionary source)
        {
            InitializeComponent();

            sourceConfigFile         = source["ConfigurationFile"] as ConfigurationFile;
            desConfigProviderElement = new ConfigProviderElement();
        }
        /// <summary>
        /// Cambia el nombre de un grupo.-
        /// </summary>
        /// <param name="provider">Proveedor de configuracion</param>
        /// <param name="groupName">Nombre del grupo</param>
        /// <param name="newGroupName">Nuevo nombre del grupo</param>
        internal static void ChangeGroupName(ConfigProviderElement provider, string groupName, string newGroupName)
        {
            //ConfigurationFile wConfigurationFile = GetConfig(provider);
            try
            {
                using (FwkDatacontext dc = new FwkDatacontext(GetCnnString(provider)))
                {
                    var configs = dc.fwk_ConfigManagers.Where(p =>
                                                              p.group.Equals(groupName) &&
                                                              p.ConfigurationFileName.Equals(provider.BaseConfigFile));

                    foreach (fwk_ConfigManager confg in configs)
                    {
                        confg.group = newGroupName;
                    }
                    dc.SubmitChanges();
                }
            }
            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;
            }
        }
Beispiel #6
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);
        }
Beispiel #7
0
        private void btnOk_Click(object sender, EventArgs e)
        {
            if (!Validate())
            {
                return;
            }
            CreatedProvider = new ConfigProviderElement();
            if (cboType.Text == "xml")
            {
                CreatedProvider.BaseConfigFile     = txtSource.Text;
                CreatedProvider.ConfigProviderType = ConfigProviderType.local;
            }
            else
            {
                CreatedProvider.BaseConfigFile     = txtConfigFileName.Text;
                CreatedProvider.SourceInfo         = txtCnnStringName.Text;
                CreatedProvider.ConfigProviderType = ConfigProviderType.sqldatabase;
                AddNewCnnString();
            }

            CreatedProvider.Name = txtName.Text;


            AddNewProvider(CreatedProvider);

            this.DialogResult = DialogResult.OK;
        }
Beispiel #8
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;
            }
            }
        }
Beispiel #9
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;
            }
            }
        }
Beispiel #10
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);
        }
Beispiel #11
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>
        ///
        /// </summary>
        /// <param name="provider">Proveedor de configuracion</param>
        /// <param name="group">Grupo</param>
        internal static void AddGroup(ConfigProviderElement provider, Group group)
        {
            ConfigurationFile wConfigurationFile = GetConfig(provider);


            wConfigurationFile.Groups.Add(group);
            fwk_ConfigManager confg;

            try
            {
                using (FwkDatacontext dc = new FwkDatacontext(GetCnnString(provider)))
                {
                    foreach (Key k in group.Keys)
                    {
                        confg = new fwk_ConfigManager();
                        confg.ConfigurationFileName = provider.BaseConfigFile;
                        confg.key       = k.Name;
                        confg.encrypted = k.Encrypted;
                        confg.value     = k.Value.Text;
                        confg.group     = group.Name;
                        dc.fwk_ConfigManagers.InsertOnSubmit(confg);
                    }
                    dc.SubmitChanges();
                }
            }
            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;
            }
        }
        /// <summary>
        /// Realiza cambios a una propiedad.-
        /// </summary>
        /// <param name="provider">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(ConfigProviderElement provider, string groupName, Key property, string propertyName)
        {
            TechnicalException te = new TechnicalException(string.Concat("No esta nimplementada esta funcionalidad de ConfigurationMannager contra servicios ", provider.BaseConfigFile));

            te.ErrorId = "8008";
            Fwk.Exceptions.ExceptionHelper.SetTechnicalException(te, typeof(LocalFileConfigurationManager));
            throw te;
        }
Beispiel #14
0
 public void Populate(ConfigProviderElement pProvider)
 {
     Provider = pProvider;
     if (pProvider == null)
     {
         return;
     }
     SetProvider();
 }
        /// <summary>
        /// Devuelve el contenido completo de un archivo de configuración
        /// dado el nombre de archivo.
        /// </summary>
        /// <param name="provider">Proveedor de configuración.</param>
        /// <returns>ConfigurationFile</returns>
        /// <Author>Marcelo Oviedo</Author>
        static ConfigurationFile GetConfig(ConfigProviderElement provider)
        {
            ConfigurationFile wConfigurationFile = _Repository.GetConfigurationFile(provider.Name);

            if (wConfigurationFile == null)
            {
                wConfigurationFile = SetConfigurationFile(provider);
                _Repository.AddConfigurationFile(wConfigurationFile);
            }
            return(wConfigurationFile);
        }
        /// <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);
        }
Beispiel #17
0
        /// <summary>
        /// Constructor estatico del bloque de configuracion del framework
        /// </summary>
        static ConfigurationManager()
        {
            TechnicalException te;

            try
            {
                _ConfigProvider = System.Configuration.ConfigurationManager.GetSection("FwkConfigProvider") as ConfigProviderSection;
                if (_ConfigProvider == null)
                {
                    te           = new TechnicalException("No se puede cargar el proveedor de configuracion del framework fwk, verifique si existe la seccion [FwkConfigProvider] en el archivo de configuracion.");
                    te.ErrorId   = "8000";
                    te.Namespace = "Fwk.Configuration";
                    te.Class     = "Fwk.Configuration.ConfigurationManager [static constructor --> ConfigurationManager()]";
                    te.UserName  = Environment.UserName;
                    te.Machine   = Environment.MachineName;

                    if (string.IsNullOrEmpty(ConfigurationsHelper.HostApplicationName))
                    {
                        te.Source = "Sistema de Configuration del framework en ";
                    }
                    else
                    {
                        te.Source = ConfigurationsHelper.HostApplicationName;
                    }

                    throw te;
                }
            }
            catch (System.Exception ex)
            {
                te           = new TechnicalException("No se puede cargar el proveedor de configuracion del framework fwk, verifique si existe la seccion [FwkConfigProvider] en el archivo de configuracion. \r\n", ex);
                te.ErrorId   = "8000";
                te.Namespace = "Fwk.Configuration";
                te.Class     = "Fwk.Configuration.ConfigurationManager [static constructor --> ConfigurationManager()]";
                te.UserName  = Environment.UserName;
                te.Machine   = Environment.MachineName;

                if (string.IsNullOrEmpty(ConfigurationsHelper.HostApplicationName))
                {
                    te.Source = "Sistema de Configuration del framework en ";
                }
                else
                {
                    te.Source = ConfigurationsHelper.HostApplicationName;
                }

                throw te;
            }

            _DefaultProvider = _ConfigProvider.DefaultProvider;
        }
        /// <summary>
        /// Busca en la base de datos el archivo de configuracion
        /// </summary>
        /// <param name="pFileName">Nombre de archivo.</param>
        /// <param name="provider">provider</param>
        /// <Author>Marcelo Oviedo</Author>
        static ConfigurationFile GetFromDatabase(string pFileName, ConfigProviderElement provider)
        {
            ConfigurationFile wConfigurationFile = new ConfigurationFile();

            wConfigurationFile.Groups = new Groups();
            string groupAuxiliar = string.Empty;
            Group  g             = null;
            Key    k             = null;

            wConfigurationFile.FileName = pFileName;

            try
            {
                using (FwkDatacontext dc = new FwkDatacontext(GetCnnString(provider)))
                {
                    IEnumerable <fwk_ConfigManager> fwk_ConfigManagerList = from s in dc.fwk_ConfigManagers
                                                                            where s.ConfigurationFileName.Equals(pFileName)

                                                                            select s;

                    foreach (fwk_ConfigManager fwk_Config in fwk_ConfigManagerList.OrderBy(p => p.group))
                    {
                        if (!groupAuxiliar.Equals(fwk_Config.group))
                        {
                            groupAuxiliar = Convert.ToString(fwk_Config.group);
                            g             = new Group();
                            g.Name        = groupAuxiliar;
                            wConfigurationFile.Groups.Add(g);
                        }

                        k            = new Key();
                        k.Encrypted  = fwk_Config.encrypted;
                        k.Name       = fwk_Config.key;
                        k.Value.Text = fwk_Config.value;

                        g.Keys.Add(k);
                    }
                }
            }
            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(wConfigurationFile);
        }
        /// <summary>
        /// Vuelve a cargar el archivo de configuracion desde el origen de datos
        /// </summary>
        /// <param name="provider">Proveedor de configuracion</param>
        /// <returns></returns>
        internal static ConfigurationFile RefreshConfigurationFile(ConfigProviderElement provider)
        {
            ConfigurationFile wConfigurationFile = _Repository.GetConfigurationFile(provider.Name);

            if (wConfigurationFile != null)
            {
                _Repository.RemoveConfigurationFile(wConfigurationFile);
                wConfigurationFile = null;
            }

            wConfigurationFile = SetConfigurationFile(provider);
            _Repository.AddConfigurationFile(wConfigurationFile);

            return(wConfigurationFile);
        }
        /// <summary>
        /// Busca la configuracion <see cref="ConfigurationFile"/> atravez de una llamada a un servicio fwk
        /// Este codigo se ejecuta del lado del clientes es decir en el Wrapper
        /// Del lado del servidor (dispatcher) debe existir una configuracion Xml o Database con el mismo nombre de provider que
        /// realiza la llmada del cliente de tipo Service.
        /// Utiliza provider.SourceInfo para localizar un wrapper valido en el ciente que es e q se utilizara para conectarce al Dispatcher
        /// </summary>
        /// <param name="provider">Proveedor de configuración.</param>
        /// <Author>Marcelo Oviedo</Author>
        static ConfigurationFile SetConfigurationFile(ConfigProviderElement provider)
        {
            GetFwkConfigurationReq req = new GetFwkConfigurationReq();

            req.BusinessData.ConfigProviderName = provider.Name;

            GetFwkConfigurationRes res = req.ExecuteService <GetFwkConfigurationReq, GetFwkConfigurationRes>(provider.SourceInfo, req);


            if (res.Error != null)
            {
                throw Fwk.Exceptions.ExceptionHelper.ProcessException(res.Error);
            }
            return(res.BusinessData);
        }
Beispiel #21
0
        void AddNewProvider(ConfigProviderElement newProvider)
        {
            try
            {
                ConfigProviderSection config = (ConfigProviderSection)configuration.Sections["FwkConfigProvider"];
                config.Providers.Add(newProvider);

                configuration.Save(ConfigurationSaveMode.Minimal, true);

                Fwk.Configuration.ConfigurationManager.ConfigProvider.Providers.Add(newProvider);
            }
            catch (Exception ex)
            {
                this.ExceptionViewer.Show(ex);
            }
        }
        /// <summary>
        ///Si grupo no existe en un provider p/bd es por que seguramente se agrego el grupo por la aplicacion del fwk y ahun este grupo se encuentra vasio.
        ///y no es posible agregar grupos vasios ya que los grupos tienen que tener al menos una propiedad para ser agregados a la tabla
        /// </summary>
        /// <param name="provider">Proveedor de configuracion</param>
        /// <param name="key"></param>
        /// <param name="groupName">Nombre del gruop que contiene las propiedades</param>
        internal static void AddProperty(ConfigProviderElement provider, Key key, string groupName)
        {
            System.Text.StringBuilder sqlCommand = new StringBuilder();

            ConfigurationFile wConfigurationFile = GetConfig(provider);
            Group             wGroup             = wConfigurationFile.Groups.GetFirstByName(groupName);

            //Si grupo no existe en un provider p/bd es por que seguramente se agrego el grupo por la aplicacion del fwk y ahun este grupo se encuentra vasio.
            //y no es posible agregar grupos vasios ya que los grupos tienen que tener al menos una propiedad para ser agregados a la tabla
            if (wGroup == null)
            {
                wGroup      = new Group();
                wGroup.Keys = new Keys();
                wGroup.Name = groupName;
                AddGroup(provider, wGroup);
            }
            wGroup.Keys.Add(key);



            fwk_ConfigManager confg;

            try
            {
                using (FwkDatacontext dc = new FwkDatacontext(GetCnnString(provider)))
                {
                    confg = new fwk_ConfigManager();
                    confg.ConfigurationFileName = provider.BaseConfigFile;
                    confg.key       = key.Name;
                    confg.encrypted = key.Encrypted;
                    confg.value     = key.Value.Text;
                    confg.group     = groupName;

                    dc.fwk_ConfigManagers.InsertOnSubmit(confg);


                    dc.SubmitChanges();
                }
            }
            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;
            }
        }
 internal static void Import(ConfigProviderElement provider, ConfigurationFile sourceConfigurationFile)
 {
     foreach (Group wGrp in sourceConfigurationFile.Groups)
     {
         foreach (Fwk.Configuration.Common.Key wKey in wGrp.Keys)
         {
             if (ExistProperty(wGrp.Name, wKey.Name, provider))
             {
                 ChangeProperty(provider, wGrp.Name, wKey, wKey.Name);
             }
             else
             {
                 AddProperty(provider, wKey, wGrp.Name);
             }
         }
     }
 }
        /// <summary>
        /// Elimina una porpiedad de la cinfuguracion
        /// </summary>
        /// <param name="provider">Proveedor de configuracion</param>
        /// <param name="groupName">Gupo al que pertenece la propiedad</param>
        /// <param name="propertyName">Nombre de la propiedad</param>
        internal static void RemoveProperty(ConfigProviderElement provider, string groupName, string propertyName)
        {
            ConfigurationFile wConfigurationFile = GetConfig(provider); //_Repository.GetConfigurationFile(provider.BaseConfigFile);
            Group             g = wConfigurationFile.Groups.GetFirstByName(groupName);
            Key k = g.Keys.GetFirstByName(propertyName);

            g.Keys.Remove(k);
            System.Text.StringBuilder sqlCommand = new StringBuilder("Delete from [fwk_ConfigManager] where ");
            sqlCommand.AppendLine(string.Concat("ConfigurationFileName = '", provider.BaseConfigFile, "'"));
            sqlCommand.AppendLine(string.Concat("and [group] = '", groupName, "'"));
            sqlCommand.AppendLine(string.Concat("and [key] = '", propertyName, "'"));
            //if (!String.IsNullOrEmpty( provider.ApplicationId))
            //    sqlCommand.AppendLine(string.Concat("and AppId = '", provider.ApplicationId, "'"));


            EexeSqlCommand(sqlCommand.ToString(), provider.SourceInfo);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="configProvider"></param>
        /// <param name="groupName"></param>
        /// <param name="propertyName"></param>
        /// <returns></returns>
        static Key GetKey_FromDB(string configProvider, string groupName, string propertyName)
        {
            ConfigProviderElement provider = ConfigurationManager.GetProvider(configProvider);

            if (System.Configuration.ConfigurationManager.ConnectionStrings[provider.SourceInfo] == null)
            {
                TechnicalException te = new TechnicalException(string.Concat("Problemas con Fwk.Configuration, no se puede encontrar la cadena de conexión: ", provider.SourceInfo));
                ExceptionHelper.SetTechnicalException <DatabaseConfigManager>(te);
                te.ErrorId = "8200";
                throw te;
            }

            try
            {
                using (FwkDatacontext dc = new FwkDatacontext(System.Configuration.ConfigurationManager.ConnectionStrings[provider.SourceInfo].ConnectionString))
                {
                    var val = dc.fwk_ConfigManagers.Where(config =>
                                                          config.ConfigurationFileName.ToLower().Equals(provider.BaseConfigFile.ToLower()) &&
                                                          config.group.ToLower().Equals(groupName.ToLower()) &&
                                                          config.key.ToLower().Equals(propertyName.ToLower())).FirstOrDefault();

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

                    Key wKey = new Key();
                    wKey.Value.Text = val.value;
                    wKey.Name       = propertyName;
                    wKey.Encrypted  = val.encrypted;

                    return(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;
            }
        }
 static string GetCnnString(ConfigProviderElement provider)
 {
     if (provider.SourceInfoIsConnectionString)
     {
         return(provider.SourceInfo);
     }
     else
     {
         if (System.Configuration.ConfigurationManager.ConnectionStrings[provider.SourceInfo] == null)
         {
             TechnicalException te = new TechnicalException(string.Concat("Problemas con Fwk.Configuration, no se puede encontrar la cadena de conexión: ", provider.SourceInfo));
             ExceptionHelper.SetTechnicalException <DatabaseConfigManager>(te);
             te.ErrorId = "8200";
             throw te;
         }
         return(System.Configuration.ConfigurationManager.ConnectionStrings[provider.SourceInfo].ConnectionString);
     }
 }
        /// <summary>
        /// Cambia el nombre de un grupo.-
        /// </summary>
        /// <param name="provider">Proveedor de configuracion</param>
        /// <param name="groupName">Nombre del grupo</param>
        /// <param name="newGroupName">Nuevo nombre del grupo</param>
        internal static void ChangeGroupName(ConfigProviderElement provider, string groupName, string newGroupName)
        {
            ConfigurationFile wConfigurationFile = GetConfig(provider);
            Group             g = wConfigurationFile.Groups.GetFirstByName(groupName);

            g.Name = newGroupName;
            try
            {
                FileFunctions.SaveTextFile(wConfigurationFile.FileName, wConfigurationFile.GetXml(), false);
            }
            catch (System.UnauthorizedAccessException)
            {
                TechnicalException te = new TechnicalException(string.Concat("No tiene permiso para actualizar el archivo ", provider.BaseConfigFile));
                te.ErrorId = "8008";
                Fwk.Exceptions.ExceptionHelper.SetTechnicalException(te, typeof(LocalFileConfigurationManager));
                throw te;
            }
        }
        /// <summary>
        /// Obtiene un String con el contenido del archivo xml de configuracion.
        /// Si este metodo es accedido desde el servicio web extrae la informacion de estado del archivo:
        /// Encrypt
        /// TTL
        /// ForceUpdate
        /// CurrentVersion
        /// BaseConfigFile
        /// Cacheable
        /// </summary>
        /// <param name="provider">Proveedor de configuración.</param>
        /// <Author>Marcelo Oviedo</Author>
        static ConfigurationFile SetConfigurationFile(ConfigProviderElement provider)
        {
            ConfigurationFile wConfigurationFile = new ConfigurationFile();


            string wFullFileName;

            if (System.IO.File.Exists(provider.BaseConfigFile))
            {
                wFullFileName = provider.BaseConfigFile;
            }
            else
            {
                //Application.StartupPath
                wFullFileName = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location), provider.BaseConfigFile);
            }

            if (!System.IO.File.Exists(wFullFileName))
            {
                TechnicalException te = new TechnicalException(string.Concat("El archivo de artchivo de configuración ", provider.BaseConfigFile, " no existe. ", Environment.NewLine, "Revisar en el archivo .config de la aplicacion la configuración del proveedor [", provider.Name, "]"));
                te.ErrorId = "8011";
                Fwk.Exceptions.ExceptionHelper.SetTechnicalException(te, typeof(LocalFileConfigurationManager));
                throw te;
            }

            wConfigurationFile = ConfigurationFile.GetFromXml <ConfigurationFile>(Fwk.HelperFunctions.FileFunctions.OpenTextFile(wFullFileName));



            wConfigurationFile.FileName = wFullFileName;

            if (wConfigurationFile != null)
            {
                wConfigurationFile.TTL            = wConfigurationFile.TTL;
                wConfigurationFile.Encrypted      = wConfigurationFile.Encrypted;
                wConfigurationFile.ForceUpdate    = wConfigurationFile.ForceUpdate;
                wConfigurationFile.CurrentVersion = wConfigurationFile.CurrentVersion;
                wConfigurationFile.ProviderName   = provider.Name;
            }

            return(wConfigurationFile);
        }
Beispiel #29
0
        internal static void QuitFile(TreeNode node)
        {
            ListDictionary wDictionary = (ListDictionary)node.Tag;

            try
            {
                System.Configuration.Configuration configuration;
                ExeConfigurationFileMap            map = new ExeConfigurationFileMap();
                map.ExeConfigFilename = System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + ".config";
                configuration         = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
                ConfigProviderElement prov = Fwk.Configuration.ConfigurationManager.ConfigProvider.GetProvider(wDictionary["provider"].ToString());

                Fwk.Configuration.ConfigurationManager.ConfigProvider.Providers.Remove(prov);

                configuration.Save(ConfigurationSaveMode.Minimal, true);
            }
            catch (Exception ex)
            {
                FwkMessageView.Show(ex, "Config manager", MessageBoxButtons.OK, Fwk.Bases.FrontEnd.Controls.MessageBoxIcon.Error);
            }
        }
        /// <summary>
        /// Busca en la base de datos el archivo de configuracion
        /// </summary>
        /// <param name="groupName"></param>
        /// <param name="keyName"></param>
        /// <param name="destinationProvider">Provedor destino</param>
        /// <Author>Marcelo Oviedo</Author>
        static bool ExistProperty(string groupName, string keyName, ConfigProviderElement destinationProvider)
        {
            try
            {
                using (FwkDatacontext dc = new FwkDatacontext(GetCnnString(destinationProvider)))
                {
                    var properties = dc.fwk_ConfigManagers.Where(config =>
                                                                 config.ConfigurationFileName.ToLower().Equals(destinationProvider.BaseConfigFile.ToLower()) &&
                                                                 config.group.ToLower().Equals(groupName.ToLower()) &&
                                                                 config.key.ToLower().Equals(keyName.ToLower())
                                                                 );

                    return(properties.Any());
                }
            }
            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;
            }
        }