/// <summary> /// Obtiene la implementación para la configuración de la base de datos. /// </summary> /// <remarks> /// Registro de versiones: /// /// 1.0 02/03/2015 Marcos Abraham Hernández Bravo (Ada Ltda.): versión inicial. /// </remarks> /// <returns>Una implementación de <see cref="Ada.Framework.Data.DBConnector.Connections.IConfiguracionBaseDatos"></see>.</returns> /// <exception cref="Ada.Framework.Data.DBConnector.Connections.Exceptions.ConfiguracionBaseDatosException">Lanzada al no encontrar la declaración de sección en el archivo de configuración.</exception> /// <exception cref="Ada.Framework.Util.FileMonitor.Exceptions.ArchivoNoEncontradoException">Lanzada al no encontrar el archivo en la ruta especificada por DataBaseConnectionsPath.</exception> /// <exception cref="Ada.Framework.Util.FileMonitor.Exceptions.ArchivoNoEncontradoException">Lanzada al no encontrar el archivo en la ruta especificada por DataBaseConnectionsValidatorPath.</exception> public static IConfiguracionBaseDatos ObtenerConfiguracionDeBaseDatos() { IMonitorArchivo monitor = MonitorArchivoFactory.ObtenerArchivo(); string DataBaseConnectionsPath = FrameworkConfigurationManager.ObtenerRutaArchivoConfiguracion("DataBaseConnections"); string DataBaseConnectionsValidatorPath = FrameworkConfigurationManager.ObtenerRutaArchivoConfiguracion("DataBaseConnectionsValidator"); DataBaseConnectionsPath = monitor.ObtenerRutaArchivoExistente(DataBaseConnectionsPath, NOMBRE_ARCHIVO_CONEXION); DataBaseConnectionsValidatorPath = monitor.ObtenerRutaArchivoExistente(DataBaseConnectionsValidatorPath, NOMBRE_ARCHIVO_VALIDADOR_XML_CONEXION); return(new ConfiguracionBaseDatos(DataBaseConnectionsPath, DataBaseConnectionsValidatorPath)); }
/// <summary> /// Obtiene la configuración desde el archivo XML. /// </summary> /// <remarks> /// Registro de versiones: /// /// 1.0 08/10/2015 Marcos Abraham Hernández Bravo (Ada Ltda.): versión inicial. /// </remarks> /// <param name="claseDAO">Tipo de la clase de un DAO.</param> /// <returns></returns> public static DynamicQueryRoot ObtenerConfiguracion(Type claseDAO) { IMonitorArchivo monitor = MonitorArchivoFactory.ObtenerArchivo(); string DynamicQueryConfigPath = FrameworkConfigurationManager.ObtenerRutaArchivoConfiguracion(CARPETA_DYNAMIC_QUERIES); string ruta = monitor.ObtenerRutaArchivo(DynamicQueryConfigPath, claseDAO.FullName + ".dbq.xml"); string clave = null; if (monitor.Existe(ruta)) { DynamicQueryConfigPath = ruta; clave = claseDAO.FullName; } else { DynamicQueryConfigPath = monitor.ObtenerRutaArchivoExistente(DynamicQueryConfigPath, claseDAO.Name + ".dbq.xml"); clave = claseDAO.Name; } if ((!ArchivosConsultas.ContainsKey(clave)) || (monitor.FueModificado(ArchivosConsultas[clave].FechaUltimaModificacion, DynamicQueryConfigPath))) { XmlSerializer serializer = new XmlSerializer(typeof(DynamicQueryRoot)); FileStream file = null; DynamicQueryRoot retorno = null; try { file = new FileStream(DynamicQueryConfigPath, FileMode.Open); retorno = serializer.Deserialize(file) as DynamicQueryRoot; } catch (Exception e) { throw e; } finally { if (file != null) { file.Close(); } } if (retorno != null) { Configuracion = retorno; } if (!ArchivosConsultas.ContainsKey(clave)) { ArchivosConsultas.Add(clave, retorno); } ArchivosConsultas[clave].FechaUltimaModificacion = monitor.ObtenerFechaUltimaModificacion(DynamicQueryConfigPath); } return(Configuracion); }