Example #1
0
 /// <summary>
 ///		Carga los datos de un proyecto
 /// </summary>
 private void LoadProject(string fileName)
 {
     try
     {
         // Carga los datos del archivo
         project = new NSharpDocManager().LoadProject(fileName);
         // Muestra los datos del proyecto
         cboDocumentType.SelectedID = (int)project.IDType;
         pthTarget.PathName         = project.OutputPath;
         pthTemplates.PathName      = project.TemplatePath;
         if (pthTemplates.PathName.IsEmpty())
         {
             pthTemplates.PathName = System.IO.Path.Combine(Application.StartupPath, "Data\\Templates");
         }
         // Carga los parámetros de generación
         chkShowPublic.Checked    = project.GenerationParameters.ShowPublic;
         chkShowInternal.Checked  = project.GenerationParameters.ShowInternal;
         chkShowProtected.Checked = project.GenerationParameters.ShowProtected;
         chkShowPrivate.Checked   = project.GenerationParameters.ShowPrivate;
         // Carga los provedores
         LoadListProviders();
         // Cambia la configuración
         SaveConfiguration();
     }
     catch (Exception exception)
     {
         Bau.Controls.Forms.Helper.ShowMessage(this, $"Error al cargar {fileName}. {Environment.NewLine} {exception.Message}");
     }
 }
Example #2
0
 /// <summary>
 ///		Genera la documentación a partir de estructuras de documentación
 /// </summary>
 private void Process(StructDocumentationModelCollection structDocs, ProjectDocumentationModel project)
 {
     // Copia el contenido del directorio de plantillas
     CopyTemplates(project);
     // Genera la documentación
     new Processor.DocumentationGenerator(this, project).Process(structDocs);
 }
 /// <summary>
 ///		Asigna los parámetros del formulario al proyecto
 /// </summary>
 private void AssignParameters(ProjectDocumentationModel objProject)
 {               // Recupera el tipo y los directorios
     objProject.IDType       = (ProjectDocumentationModel.DocumentationType)(cboDocumentType.SelectedID ?? 0);
     objProject.OutputPath   = pthTarget.PathName;
     objProject.TemplatePath = pthTemplates.PathName;
     // Recupera los parámetros de generación
     objProject.GenerationParameters.ShowInternal  = chkShowInternal.Checked;
     objProject.GenerationParameters.ShowPrivate   = chkShowPrivate.Checked;
     objProject.GenerationParameters.ShowProtected = chkShowProtected.Checked;
     objProject.GenerationParameters.ShowPublic    = chkShowPublic.Checked;
 }
Example #4
0
 internal TemplateDocumentGenerator(ProjectDocumentationModel project,
                                    DocumentationGenerator documentationGenerator,
                                    TemplateModel template, DocumentFileModel document,
                                    string urlBase, DocumentFileModelCollection allDocuments)
 {
     Project            = project;
     Generator          = documentationGenerator;
     Template           = template;
     Document           = document;
     UrlBase            = urlBase;
     DocumentsGenerated = allDocuments;
 }
Example #5
0
 /// <summary>
 ///		Limpia los datos
 /// </summary>
 private void Clear(bool loadLast)
 {
     // Crea un nuevo objeto de proyecto
     project = new ProjectDocumentationModel();
     // Inicializa la lista de proveedores
     InitListProviders();
     // Carga el objeto de proyecto si es necesario
     if (loadLast && !Configuration.LastProject.IsEmpty() && System.IO.File.Exists(Configuration.LastProject))
     {
         LoadProject(Configuration.LastProject);
     }
 }
Example #6
0
        /// <summary>
        ///		Genera la documentación de un proyecto
        /// </summary>
        private void CompileProject(ProjectDocumentationModel project)
        {
            StructDocumentationModelCollection structsDoc = new StructDocumentationModelCollection();

            // Genera las estructuras de documentación de los diferentes proveedores
            foreach (ProviderModel provider in project.Providers)
            {
                try
                {
                    switch (provider.Type.TrimIgnoreNull().ToUpper())
                    {
                    case "C#":
                        structsDoc.Add(new LibNetParser.ProgramParser().Parse(provider.Parameters));
                        break;

                    case "VISUALBASIC":
                        structsDoc.Add(new LibNetParser.ProgramParser().Parse(provider.Parameters));
                        break;

                    case "SQLSERVER":
                        structsDoc.Add(CompileDatabase(LibDataBaseDocumenter.StructDataBaseConversor.DataBaseType.SqlServer,
                                                       provider.Parameters));
                        break;

                    case "OLEDB":
                        structsDoc.Add(CompileDatabase(LibDataBaseDocumenter.StructDataBaseConversor.DataBaseType.SqlServer,
                                                       provider.Parameters));
                        break;

                    case "XMLSTRUCTS":
                        structsDoc.Add(new LibXMLStructs.Documenter.XMLStructsDocumenter().Parse(provider.Parameters));
                        break;

                    case "HELPPAGES":
                        structsDoc.Add(new LibHelpPages.Documenter.HelpPages().Parse(provider.Parameters));
                        break;

                    default:
                        Errors.Add($"No se reconoce el proveedor {provider.Type}");
                        break;
                    }
                }
                catch (Exception exception)
                {
                    Errors.Add($"Error en la generación de {provider.Type}. {exception.Message}");
                }
            }
            // Genera la documentación
            Process(structsDoc, project);
        }
Example #7
0
 /// <summary>
 ///		Genera la documentación a partir de los parámetros de un archivo XML
 /// </summary>
 public void Generate(ProjectDocumentationModel project, IDocumentWriter writer = null)
 {
     // Obtiene el generador
     if (writer == null)
     {
         writer = GetDocumentWriter(project);
     }
     // Guarda el generador
     Writer = writer;
     // Borra el directorio destino
     LibCommonHelper.Files.HelperFiles.KillPath(project.OutputPath);
     // Genera la documentación de los distintos proveedores
     CompileProject(project);
 }
 /// <summary>
 ///		Genera la documentación a partir de los parámetros de un archivo XML
 /// </summary>
 public void Generate(ProjectDocumentationModel objProject, IDocumentWriter objWriter = null)
 {         // Obtiene el generador
     if (objWriter == null)
     {
         objWriter = GetDocumentWriter(objProject);
     }
     // Guarda el generador
     Writer = objWriter;
     // Borra el directorio destino
     foreach (ProviderModel objProvider in objProject.Providers)
     {
         LibHelper.Files.HelperFiles.KillPath(objProject.OutputPath);
     }
     // Genera la documentación de los distintos proveedores
     CompileProject(objProject);
 }
        /// <summary>
        ///		Obtiene el interface para la generación de la documentación final
        /// </summary>
        private IDocumentWriter GetDocumentWriter(ProjectDocumentationModel objProject)
        {
            switch (objProject.IDType)
            {
            case ProjectDocumentationModel.DocumentationType.Nhtml:
                return(new Processor.Writers.NHaml.NHamlWriter());

            case ProjectDocumentationModel.DocumentationType.Html:
                return(new Processor.Writers.Html.HtmlWriter());

            case ProjectDocumentationModel.DocumentationType.Xml:
                return(new Processor.Writers.Xml.XmlWriter());

            default:
                throw new NotImplementedException("No se reconoce el tipo de documentación: " + objProject.IDType.ToString());
            }
        }
        /// <summary>
        ///		Genera la documentación de un proyecto
        /// </summary>
        private void CompileProject(ProjectDocumentationModel objProject)
        {
            StructDocumentationModelCollection objColStructs = new StructDocumentationModelCollection();

            // Genera las estructuras de documentación de los diferentes proveedores
            foreach (ProviderModel objProvider in objProject.Providers)
            {
                try
                { switch (objProvider.Type.TrimIgnoreNull().ToUpper())
                  {
                  case "C#":
                      objColStructs.Add(new LibCSharpParser.ProgramParser().Parse(objProvider.Parameters));
                      break;

                  case "VISUALBASIC":
                      objColStructs.Add(new LibVisualBasicParser.ProgramParser().Parse(objProvider.Parameters));
                      break;

                  case "SQLSERVER":
                      objColStructs.Add(new LibSqlServer.Documenter.SchemaDocumenter().Parse(objProvider.Parameters));
                      break;

                  case "OLEDB":
                      objColStructs.Add(new LibOleDB.Documenter.SchemaDocumenter().Parse(objProvider.Parameters));
                      break;

                  case "XMLSTRUCTS":
                      objColStructs.Add(new LibXMLStructs.Documenter.XMLStructsDocumenter().Parse(objProvider.Parameters));
                      break;

                  default:
                      Errors.Add($"No se reconoce el proveedor {objProvider.Type}");
                      break;
                  }
                }
                catch (Exception objException)
                { Errors.Add($"Error en la generación de {objProvider.Type}. {objException.Message}"); }
            }
            // Genera la documentación
            Process(objColStructs, objProject);
        }
Example #11
0
        /// <summary>
        ///		Copia los archivos del directorio donde se encuentran las plantillas
        /// </summary>
        private void CopyTemplates(ProjectDocumentationModel project)
        {
            string pathTemplate = project.TemplatePath;

            if (!pathTemplate.IsEmpty() && System.IO.Directory.Exists(pathTemplate))
            {
                // Copia los directorios
                foreach (string path in System.IO.Directory.GetDirectories(pathTemplate))
                {
                    LibCommonHelper.Files.HelperFiles.CopyPath(path, System.IO.Path.Combine(project.OutputPath, System.IO.Path.GetFileName(path)));
                }
                // Copia los archivos (excepto las plantillas)
                foreach (string file in System.IO.Directory.GetFiles(pathTemplate))
                {
                    if (!file.EndsWith(".tpt", StringComparison.CurrentCultureIgnoreCase) && !file.StartsWith("_"))
                    {
                        LibCommonHelper.Files.HelperFiles.CopyFile(file, System.IO.Path.Combine(project.OutputPath, System.IO.Path.GetFileName(file)));
                    }
                }
            }
        }
 /// <summary>
 ///		Carga los datos de un proyecto
 /// </summary>
 private void LoadProject(string strFileName)
 {         // Carga los datos del archivo
     objProject = new NSharpDocManager().LoadProject(strFileName);
     // Muestra los datos del proyecto
     cboDocumentType.SelectedID = (int)objProject.IDType;
     pthTarget.PathName         = objProject.OutputPath;
     pthTemplates.PathName      = objProject.TemplatePath;
     if (pthTemplates.PathName.IsEmpty())
     {
         pthTemplates.PathName = System.IO.Path.Combine(Application.StartupPath, "Data\\Templates");
     }
     // Carga los parámetros de generación
     chkShowPublic.Checked    = objProject.GenerationParameters.ShowPublic;
     chkShowInternal.Checked  = objProject.GenerationParameters.ShowInternal;
     chkShowProtected.Checked = objProject.GenerationParameters.ShowProtected;
     chkShowPrivate.Checked   = objProject.GenerationParameters.ShowPrivate;
     // Carga los provedores
     LoadListProviders();
     // Cambia la configuración
     SaveConfiguration();
 }
Example #13
0
        /// <summary>
        ///		Graba los datos de un mensaje
        /// </summary>
        internal void Save(string fileName, ProjectDocumentationModel project)
        {
            MLFile fileML = new MLFile();
            MLNode nodeML = fileML.Nodes.Add(TagRoot);

            // Añade los parámetros básicos
            nodeML.Nodes.Add(TagDocumentationType, (int)project.IDType);
            nodeML.Nodes.Add(TagOutputPath, project.OutputPath);
            nodeML.Nodes.Add(TagTemplatePath, project.TemplatePath);
            // Añade los parámetros de documentación
            nodeML.Nodes.Add(TagShowPublic, project.GenerationParameters.ShowPublic);
            nodeML.Nodes.Add(TagShowProtected, project.GenerationParameters.ShowProtected);
            nodeML.Nodes.Add(TagShowInternal, project.GenerationParameters.ShowInternal);
            nodeML.Nodes.Add(TagShowPrivate, project.GenerationParameters.ShowPrivate);
            // Añade los nodos de proveedor
            foreach (ProviderModel provider in project.Providers)
            {
                nodeML.Nodes.Add(GetNodeProvider(provider));
            }
            // Graba el archivo
            new LibMarkupLanguage.Services.XML.XMLWriter().Save(fileName, fileML);
        }
        /// <summary>
        ///		Graba los datos de un mensaje
        /// </summary>
        internal void Save(string strFileName, ProjectDocumentationModel objProject)
        {
            MLFile objMLFile = new MLFile();
            MLNode objMLNode = objMLFile.Nodes.Add(cnstStrTagRoot);

            // Añade los parámetros básicos
            objMLNode.Nodes.Add(cnstStrTagDocumentationType, (int)objProject.IDType);
            objMLNode.Nodes.Add(cnstStrTagProviderPath, objProject.OutputPath);
            objMLNode.Nodes.Add(cnstStrTagProviderTemplatePath, objProject.TemplatePath);
            // Añade los parámetros de documentación
            objMLNode.Nodes.Add(cnstStrTagShowPublic, objProject.GenerationParameters.ShowPublic);
            objMLNode.Nodes.Add(cnstStrTagShowProtected, objProject.GenerationParameters.ShowProtected);
            objMLNode.Nodes.Add(cnstStrTagShowInternal, objProject.GenerationParameters.ShowInternal);
            objMLNode.Nodes.Add(cnstStrTagShowPrivate, objProject.GenerationParameters.ShowPrivate);
            // Añade los nodos de proveedor
            foreach (ProviderModel objProvider in objProject.Providers)
            {
                objMLNode.Nodes.Add(GetNodeProvider(objProvider));
            }
            // Graba el archivo
            new MLSerializer().Save(MLSerializer.SerializerType.XML, objMLFile, strFileName);
        }
Example #15
0
        /// <summary>
        ///		Carga los datos de un archivo
        /// </summary>
        internal ProjectDocumentationModel Load(string fileName)
        {
            ProjectDocumentationModel project = new ProjectDocumentationModel();
            MLFile fileML = new LibMarkupLanguage.Services.XML.XMLParser().Load(fileName);

            // Asigna el nombre de archivo
            project.FileName = fileName;
            // Carga los datos
            if (fileML != null)
            {
                foreach (MLNode nodeML in fileML.Nodes)
                {
                    if (nodeML.Name == TagRoot)
                    {
                        // Añade los parámetros básicos
                        project.IDType       = (ProjectDocumentationModel.DocumentationType)nodeML.Nodes[TagDocumentationType].Value.GetInt(0);
                        project.OutputPath   = nodeML.Nodes[TagOutputPath].Value;
                        project.TemplatePath = nodeML.Nodes[TagTemplatePath].Value;
                        project.GenerationParameters.ShowPublic    = nodeML.Nodes[TagShowPublic].Value.GetBool();
                        project.GenerationParameters.ShowProtected = nodeML.Nodes[TagShowProtected].Value.GetBool();
                        project.GenerationParameters.ShowInternal  = nodeML.Nodes[TagShowInternal].Value.GetBool();
                        project.GenerationParameters.ShowPrivate   = nodeML.Nodes[TagShowPrivate].Value.GetBool();
                        // Añade los proveedores
                        foreach (MLNode childML in nodeML.Nodes)
                        {
                            if (childML.Name == TagProvider)
                            {
                                project.Providers.Add(LoadProvider(childML));
                            }
                        }
                    }
                }
            }
            // Devuelve el proyecto
            return(project);
        }
        /// <summary>
        ///		Carga los datos de un archivo
        /// </summary>
        internal ProjectDocumentationModel Load(string strFileName)
        {
            ProjectDocumentationModel objProject = new ProjectDocumentationModel();

            // Asigna el nombre de archivo
            objProject.FileName = strFileName;
            // Carga los datos
            if (System.IO.File.Exists(strFileName))
            {
                MLFile objMLFile = new MLSerializer().Parse(MLSerializer.SerializerType.XML, strFileName);

                foreach (MLNode objMLNode in objMLFile.Nodes)
                {
                    if (objMLNode.Name == cnstStrTagRoot)
                    {                                                             // Añade los parámetros básicos
                        objProject.IDType       = (ProjectDocumentationModel.DocumentationType)objMLNode.Nodes[cnstStrTagDocumentationType].Value.GetInt(0);
                        objProject.OutputPath   = objMLNode.Nodes[cnstStrTagProviderPath].Value;
                        objProject.TemplatePath = objMLNode.Nodes[cnstStrTagProviderTemplatePath].Value;
                        objProject.GenerationParameters.ShowPublic    = objMLNode.Nodes[cnstStrTagShowPublic].Value.GetBool();
                        objProject.GenerationParameters.ShowProtected = objMLNode.Nodes[cnstStrTagShowProtected].Value.GetBool();
                        objProject.GenerationParameters.ShowInternal  = objMLNode.Nodes[cnstStrTagShowInternal].Value.GetBool();
                        objProject.GenerationParameters.ShowPrivate   = objMLNode.Nodes[cnstStrTagShowPrivate].Value.GetBool();
                        // Añade los proveedores
                        foreach (MLNode objMLChild in objMLNode.Nodes)
                        {
                            if (objMLChild.Name == cnstStrTagProvider)
                            {
                                objProject.Providers.Add(LoadProvider(objMLChild));
                            }
                        }
                    }
                }
            }
            // Devuelve el proyecto
            return(objProject);
        }
Example #17
0
 internal DocumentationGenerator(NSharpDocManager objGenerator, ProjectDocumentationModel project)
 {
     DocumentationProcessor = objGenerator;
     Project = project;
 }
 /// <summary>
 ///		Graba los datos de un proyecto
 /// </summary>
 public void SaveProject(ProjectDocumentationModel objProject, string strFileName)
 {
     new Repository.Projects.ProjectRepository().Save(strFileName, objProject);
 }
Example #19
0
 /// <summary>
 ///		Graba los datos de un proyecto
 /// </summary>
 public void SaveProject(ProjectDocumentationModel project, string fileName)
 {
     new Repository.Projects.ProjectRepository().Save(fileName, project);
 }