From 1b834e7752e44b37b2fd1462b557ab6e8955ab60 Mon Sep 17 00:00:00 2001 From: eugeniy_ivanov Date: Tue, 17 Jan 2023 05:14:04 +0500 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=BE=20=D0=B8=D1=81=D0=BA=D0=BB=D1=8E=D1=87=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BD=D0=B5=D0=BA=D0=BE=D1=80=D1=80=D0=B5=D0=BA?= =?UTF-8?q?=D1=82=D0=BD=D0=BE=D0=B3=D0=BE=20=D1=84=D0=BE=D1=80=D0=BC=D0=B0?= =?UTF-8?q?=D1=82=D0=B0=20=D1=84=D0=B0=D0=B9=D0=BB=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DrillingProgram/Convert/ConvertToPdf.cs | 21 ++++++++++++------- ConsoleApp1/Program.cs | 16 ++++++++++++++ 2 files changed, 30 insertions(+), 7 deletions(-) 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)