/// <summary> /// Обработка одного файла по урлу /// </summary> /// <param name="url">URL файла</param> /// <returns></returns> public async Task <Document> ProcessFileByUrl(string url) { var config = _config.GetSection("Processor").Get <ProcessorConfig>(); var file = await _fileGetter.GetFile(url); if (file == null) { throw new Exception($"Не удалось загрузить файл {url}"); } if (string.IsNullOrWhiteSpace(file.FileName)) { throw new Exception($"Не удалось определить имя файла по урлу {url}"); } var result = await ProcessFile(file.Bytes, file.FileName); result.FileUrl = url; string savePath; if (result.DocumentContent.DocumentType != DocumentType.Unknown) { savePath = await SaveFile(Path.Combine(config.BaseDirectory, SUCCESS_FOLDER, file.Host), file); } else { savePath = await SaveFile(Path.Combine(config.BaseDirectory, FAIL_FOLDER, file.Host), file); } result.FilePath = savePath; return(result); }
public async Task <IActionResult> DownloadFile(string fileExtension) { var path = GetFilePath(); var(fileType, fileData, fileName) = await _fileGetter.GetFile(path, fileExtension); return(File(fileData, fileType, fileName)); }