Ejemplo n.º 1
0
        /// <summary>
        ///		Comprueba si se puede compilar el contenido de la página
        /// </summary>
        private bool CanCompile(out string error)
        {
            string fileProject = GetFileNameForGenerator();

            // Inicializa los valores de salida
            error = "";
            // Si tenemos realmente nombre de proyecto
            if (string.IsNullOrWhiteSpace(fileProject))
            {
                error = "No se puede encontrar el archivo de proyecto";
            }
            else
            {
                Processor.Generator generator;

                // Crea el objeto de generación
                generator = new Processor.Generator(Solution.FullFileName, fileProject, DocWriterViewModel.Instance.PathGeneration, false, true);
                // Compila el contenido de la página
                generator.Compile(Content);
                // Muestra los errores
                foreach (Processor.Errors.ErrorMessage errorMessage in generator.Errors)
                {
                    error = error.AddWithSeparator($"{errorMessage.Message} - Token {errorMessage.Token} - Fila {errorMessage.Row} - Columna {errorMessage.Column}",
                                                   Environment.NewLine);
                }
            }
            // Devuelve el valor que indica si la compilación es correcta
            return(string.IsNullOrWhiteSpace(error));
        }
 /// <summary>
 ///		Procesa la compilación
 /// </summary>
 public override void Process()
 {
     // Crea el objeto de generación
     Generator = new Processor.Generator(Solution.FullFileName, Project.File.FullFileName, PathGeneration, false, Minimize);
     // Asigna el manejador de eventos
     Generator.EndProcess += (sender, evntArgs) => RaiseEventEndProcess($"Fin de la compilación del proyecto {Project.Name}",
                                                                        GetErrors(Generator.Errors));
     Generator.Progress += (sender, evntArgs) => RaiseEventProgress(evntArgs.Actual, evntArgs.Total, $"Compilando {Project.Name}");
     // Comienza la generación
     Generator.Generate();
 }