forked from ddrilling/AsbCloudServer
Добавлено исключение некорректного формата файла
This commit is contained in:
parent
c2afbf4d55
commit
1b834e7752
@ -45,22 +45,29 @@ namespace AsbCloudInfrastructure.Services.DrillingProgram.Convert
|
||||
|
||||
public async Task GetConverteAndMergedFileAsync(IEnumerable<string> 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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<string>();
|
||||
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<string> 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<string> inputFiles, string outFile)
|
||||
|
Loading…
Reference in New Issue
Block a user