/// <summary> /// Carga la sentencia de conversión de archivos de un directorio /// </summary> private BaseSentence LoadConvertPathSentence(MLNode rootML) { ConvertPathSentence sentence = new ConvertPathSentence(); // Carga los datos AssignSentence(sentence, rootML); sentence.Path = rootML.Attributes[TagPath].Value.TrimIgnoreNull(); sentence.Source = rootML.Attributes[TagFrom].Value.GetEnum(ConvertPathSentence.FileType.Unknown); sentence.Target = rootML.Attributes[TagTo].Value.GetEnum(ConvertPathSentence.FileType.Unknown); sentence.ExcelSheetIndex = rootML.Attributes[TagExcelSheetIndex].Value.GetInt(1); sentence.ExcelWithHeader = rootML.Attributes[TagExcelWithHeader].Value.GetBool(true); // Devuelve la sentencia return(sentence); }
/// <summary> /// Convierte los archivos de un directorio /// </summary> private async Task ProcessConvertPathAsync(BlockLogModel parent, ConvertPathSentence sentence, CancellationToken cancellationToken) { using (BlockLogModel block = parent.CreateBlock(LogModel.LogType.Info, $"Start convert path '{sentence.Path}' from {sentence.Source} to {sentence.Target}")) { string path = Step.Project.GetFullFileName(sentence.Path); if (!Directory.Exists(path)) { AddError(block, $"Cant find the path '{path}'"); } else { foreach (string source in Directory.GetFiles(path, "*" + sentence.SourceExtension)) { if (!cancellationToken.IsCancellationRequested && !HasError) { await ConvertFileAsync(block, source, Path.Combine(path, Path.GetFileNameWithoutExtension(source) + sentence.TargetExtension), GetExcelOptions(sentence.ExcelWithHeader, sentence.ExcelSheetIndex), cancellationToken); } } } } }