/// <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(); }