public ActionResult <ProcessResponse> Process(IFormFile file) { _logger.LogDebug($"Process response"); ProcessResponse response = new ProcessResponse(); string fileExtension = Path.GetExtension(file.FileName).Trim('.'); try { using (Stream stream = file.OpenReadStream()) { if (file.Length == 0) { throw new Exception("Файл не может быть пуст"); } if (CheckFileExtension.GetFileExtension(fileExtension) == FileExtension.Extensions.Unknown) { throw new Exception("Неподдерживаемый тип файла"); } if (CheckFileExtension.GetFileExtension(fileExtension) == FileExtension.Extensions.Pdf) { ExtractTextFileResponse extractResult = _fileInfoPdf.Extract(stream); PreviewFileResponse previewResult = _fileInfoPdf.Preview(stream, 0); ProcessFileResponse result = new ProcessFileResponse { Image = previewResult.Image, TextValues = extractResult.Values }; response.Values.Add(result); return(response); } else { byte[] resultPdf = _fileInfoPdf.Convert(stream, file.FileName); using (Stream pdfStream = new MemoryStream(resultPdf)) { ExtractTextFileResponse extractResult = _fileInfoPdf.Extract(pdfStream); PreviewFileResponse previewResult = _fileInfoPdf.Preview(pdfStream, 0); ProcessFileResponse result = new ProcessFileResponse { Name = file.FileName, Pdf = resultPdf, TextValues = extractResult.Values, Image = previewResult.Image }; response.Values.Add(result); } } } _logger.LogDebug("PdfController.Process() OK"); return(Ok(response)); } catch (Exception e) { _logger.LogError(e.Message); return(BadRequest($"Ошибка обработки файла '{file.FileName}'. Фаил неизвестного формата или файл поврежден")); } }
/// <summary> Setter constructor. </summary> public ProcessFile(ProcessFileRequest request) { Request = request; Response = new ProcessFileResponse(); }
/// <summary> Empty constructor. </summary> public ProcessFile() { Request = new ProcessFileRequest(); Response = new ProcessFileResponse(); }