/// <summary>
 ///		Carga los datos de un proyecto
 /// </summary>
 private ProjectModel LoadProject(SolutionModel solution, ProjectDefinitionModelCollection definitions, MLNode nodeML)
 {
     return(new ProjectModel(solution,
                             definitions.Search(nodeML.Nodes[TagModule].Value,
                                                nodeML.Nodes[TagType].Value),
                             System.IO.Path.Combine(solution.PathBase, nodeML.Nodes[TagFileName].Value)));
 }
        /// <summary>
        ///		Carga los datos de la solución de un archivo
        /// </summary>
        public SolutionModel Load(ProjectDefinitionModelCollection definitions, string fileName)
        {
            SolutionModel solution = new SolutionModel(fileName);

            // Carga los proyectos
            if (System.IO.File.Exists(fileName))
            {
                MLFile fileML = new XMLParser().Load(fileName);

                foreach (MLNode nodeML in fileML.Nodes)
                {
                    if (nodeML.Name == TagSolution)
                    {
                        foreach (MLNode childML in nodeML.Nodes)
                        {
                            switch (childML.Name)
                            {
                            case TagFolder:
                                solution.Folders.Add(LoadFolder(solution, definitions, childML));
                                break;

                            case TagProject:
                                solution.Projects.Add(LoadProject(solution, definitions, childML));
                                break;
                            }
                        }
                    }
                }
            }
            // Devuelve la solución
            return(solution);
        }
Esempio n. 3
0
 /// <summary>
 ///		Carga los datos de un proyecto
 /// </summary>
 private ProjectModel LoadProject(SolutionModel solution, ProjectDefinitionModelCollection definitions, MLNode nodeML)
 {
     return(new ProjectModel(solution,
                             definitions.Search(nodeML.Nodes[TagModule].Value,
                                                nodeML.Nodes[TagType].Value),
                             LibCommonHelper.Files.HelperFiles.CombinePath(solution.PathBase, nodeML.Nodes[TagFileName].Value)));
 }
        /// <summary>
        ///		Obtiene las definiciones de proyectos
        /// </summary>
        private ProjectDefinitionModelCollection GetProjectDefinitions()
        {
            ProjectDefinitionModelCollection definitions = new ProjectDefinitionModelCollection();

            // Recorre los plugins
            foreach (KeyValuePair <string, IPluginSourceEditor> objKey in _dctPlugins)
            {
                definitions.Add(objKey.Value.Definition);
            }
            // Devuelve las definiciones de proyectos
            return(definitions);
        }
        /// <summary>
        ///		Carga los datos de una carpeta de proyecto
        /// </summary>
        private SolutionFolderModel LoadFolder(SolutionModel solution, ProjectDefinitionModelCollection definitions, MLNode nodeML)
        {
            SolutionFolderModel folder = new SolutionFolderModel(solution);

            // Asigna las propiedades
            folder.Name = nodeML.Nodes[TagName].Value;
            // Carga los proyectos
            foreach (MLNode childML in nodeML.Nodes)
            {
                if (childML.Name == TagProject)
                {
                    folder.Projects.Add(LoadProject(solution, definitions, childML));
                }
            }
            // Devuelve la carpeta
            return(folder);
        }