示例#1
0
        /// <summary>
        ///		Obtiene las conexiones de un contexto
        /// </summary>
        private NormalizedDictionary <DataBaseConnectionModel> GetConnections(JobProjectModel project, JobContextModel context)
        {
            NormalizedDictionary <DataBaseConnectionModel> connections = new NormalizedDictionary <DataBaseConnectionModel>();

            // Obtiene las conexiones del árbol
            foreach (LibDataStructures.Trees.TreeNodeModel node in context.Tree.Nodes)
            {
                if (node.Id.EqualsIgnoreCase("Connection"))
                {
                    DataBaseConnectionModel connection = GetConnection(project, node);

                    connections.Add(connection.GlobalId, connection);
                }
            }
            // Devuelve la lista de conexiones
            return(connections);
        }
示例#2
0
        /// <summary>
        ///		Obtiene la conexión asociada a un nodo
        /// </summary>
        private DataBaseConnectionModel GetConnection(JobProjectModel project, LibDataStructures.Trees.TreeNodeModel node)
        {
            DataBaseConnectionModel connection = new DataBaseConnectionModel();

            // Asigna las propiedades básicas a la conexión
            connection.Type     = node.Attributes["Type"].GetValueString();
            connection.GlobalId = node.Attributes["Key"].GetValueString();
            // Asigna el resto de propiedades
            foreach (LibDataStructures.Trees.TreeNodeModel child in node.Nodes)
            {
                if (!string.IsNullOrWhiteSpace(child.Id))
                {
                    string value = child.Value?.ToString();

                    if (child.Id.Equals("Name", StringComparison.CurrentCultureIgnoreCase))
                    {
                        connection.Name = value;
                    }
                    else if (child.Id.Equals("Description", StringComparison.CurrentCultureIgnoreCase))
                    {
                        connection.Description = value;
                    }
                    else                                     // Parámetros correspondientes a la conexión
                    {
                        // Si el parámetro identifica un nombre de archivo, le añade el directorio
                        if (child.Id.EqualsIgnoreCase("FileName") && !System.IO.File.Exists(value))
                        {
                            value = project.GetFullFileName(value);
                        }
                        // Añade un parámetro a la conexión
                        connection.Parameters.Add(child.Id, value);
                    }
                }
            }
            // Devuelve la conexión
            return(connection);
        }