diff --git a/AsbCloudInfrastructure/Services/DrillingProgram/Convert/ConvertToPdf.cs b/AsbCloudInfrastructure/Services/DrillingProgram/Convert/ConvertToPdf.cs index 8233bd2b..807b2afe 100644 --- a/AsbCloudInfrastructure/Services/DrillingProgram/Convert/ConvertToPdf.cs +++ b/AsbCloudInfrastructure/Services/DrillingProgram/Convert/ConvertToPdf.cs @@ -45,22 +45,29 @@ namespace AsbCloudInfrastructure.Services.DrillingProgram.Convert public async Task GetConverteAndMergedFileAsync(IEnumerable filesNames, string resultPath) { - var filteredFilesNames = filesNames + foreach (var file in filesNames) + { + var fileExt = Path.GetExtension(file); + if (fileExtension.All(fe => fileExt != fe)) + { + throw new FileFormatException($"Файл с именем: {file} - неподдерживаемого формата. Он не может быть добавлен в список файлов для конвертации и слияния в общий файл программы бурения."); + } + + } + + var listFileNames = filesNames .Distinct() - .Where(f => fileExtension.Any(fe => f.ToLower().EndsWith(fe))) - .ToList(); - var listFileNames = filteredFilesNames - .ToList() .Select(o => new { inputFile = o, convertedFile = Path.ChangeExtension(o, ".pdf") - }); + }) + .ToList(); foreach (var fileName in listFileNames) { if (!fileName.inputFile.ToLower().EndsWith(".pdf")) await StartConvertProcessAsync(fileName.inputFile, fileName.convertedFile); } DoMergedAsync(listFileNames.Select(c => c.convertedFile), resultPath); - } + } } } diff --git a/ConsoleApp1/Program.cs b/ConsoleApp1/Program.cs index 75360a36..d9ad39b1 100644 --- a/ConsoleApp1/Program.cs +++ b/ConsoleApp1/Program.cs @@ -21,12 +21,14 @@ namespace ConsoleApp1 inputFiles.Add("11117777.pdf"); inputFiles.Add("22223333.xls"); inputFiles.Add("33334444.xlsx"); + inputFiles.Add("33334444.tts"); var listOutNames = new List(); var filteredFilesNames = inputFiles .Distinct() .Where(f => fileExtension.Any(fe => f.ToLower().EndsWith(fe))) .ToList(); + matchesExtensions(inputFiles); foreach (var FileName in inputFiles) { var outputFile = Path.ChangeExtension(FileName, ".pdf"); @@ -38,6 +40,20 @@ namespace ConsoleApp1 Console.WriteLine("merged files"); Console.ReadLine(); DoMerged(listOutNames, resultFile); + + static void matchesExtensions(List inputFiles) + { + string[] fileExtension = { ".xlsx", ".xls", ".ods", ".odt", ".doc", ".docx", ".pdf" }; + foreach (var file in inputFiles) + { + var fileExt = Path.GetExtension(file); + if (fileExtension.All(fe => fileExt != fe)) + { + throw new FileFormatException($"Файл с именем: {file} не может быть добавлен в список файлов для конвертации и слияния в общий файл программы бурения. Не поддерживаемый формат файла"); + } + + } + } } public static void DoMerged(IEnumerable inputFiles, string outFile)