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)
|
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()
|
.Distinct()
|
||||||
.Where(f => fileExtension.Any(fe => f.ToLower().EndsWith(fe)))
|
|
||||||
.ToList();
|
|
||||||
var listFileNames = filteredFilesNames
|
|
||||||
.ToList()
|
|
||||||
.Select(o => new {
|
.Select(o => new {
|
||||||
inputFile = o,
|
inputFile = o,
|
||||||
convertedFile = Path.ChangeExtension(o, ".pdf")
|
convertedFile = Path.ChangeExtension(o, ".pdf")
|
||||||
});
|
})
|
||||||
|
.ToList();
|
||||||
foreach (var fileName in listFileNames)
|
foreach (var fileName in listFileNames)
|
||||||
{
|
{
|
||||||
if (!fileName.inputFile.ToLower().EndsWith(".pdf"))
|
if (!fileName.inputFile.ToLower().EndsWith(".pdf"))
|
||||||
await StartConvertProcessAsync(fileName.inputFile, fileName.convertedFile);
|
await StartConvertProcessAsync(fileName.inputFile, fileName.convertedFile);
|
||||||
}
|
}
|
||||||
DoMergedAsync(listFileNames.Select(c => c.convertedFile), resultPath);
|
DoMergedAsync(listFileNames.Select(c => c.convertedFile), resultPath);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,12 +21,14 @@ namespace ConsoleApp1
|
|||||||
inputFiles.Add("11117777.pdf");
|
inputFiles.Add("11117777.pdf");
|
||||||
inputFiles.Add("22223333.xls");
|
inputFiles.Add("22223333.xls");
|
||||||
inputFiles.Add("33334444.xlsx");
|
inputFiles.Add("33334444.xlsx");
|
||||||
|
inputFiles.Add("33334444.tts");
|
||||||
|
|
||||||
var listOutNames = new List<string>();
|
var listOutNames = new List<string>();
|
||||||
var filteredFilesNames = inputFiles
|
var filteredFilesNames = inputFiles
|
||||||
.Distinct()
|
.Distinct()
|
||||||
.Where(f => fileExtension.Any(fe => f.ToLower().EndsWith(fe)))
|
.Where(f => fileExtension.Any(fe => f.ToLower().EndsWith(fe)))
|
||||||
.ToList();
|
.ToList();
|
||||||
|
matchesExtensions(inputFiles);
|
||||||
foreach (var FileName in inputFiles)
|
foreach (var FileName in inputFiles)
|
||||||
{
|
{
|
||||||
var outputFile = Path.ChangeExtension(FileName, ".pdf");
|
var outputFile = Path.ChangeExtension(FileName, ".pdf");
|
||||||
@ -38,6 +40,20 @@ namespace ConsoleApp1
|
|||||||
Console.WriteLine("merged files");
|
Console.WriteLine("merged files");
|
||||||
Console.ReadLine();
|
Console.ReadLine();
|
||||||
DoMerged(listOutNames, resultFile);
|
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)
|
public static void DoMerged(IEnumerable<string> inputFiles, string outFile)
|
||||||
|
Loading…
Reference in New Issue
Block a user