/// <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; } }
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; } }
/// <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); }
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; }
/// <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; } } }
/// <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; } } }
/// <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); }
/// <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; }
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); }
/// <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); }
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); }
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; } }