Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        /// <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);
                        }
                    }
                }
            }
        }