public async Task <IActionResult> GetDocuments([FromRoute] int id) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var documents = repository.GetDocuments(id); if (documents == null) { return(NotFound()); } // Название папки для хранения временных файлов string tempDirectory = LConfig.temp_dir; // Создание папки, если не существует if (!SIO.Directory.Exists(tempDirectory)) { SIO.Directory.CreateDirectory(tempDirectory); HLogger.log.Info("Создание каталога:" + tempDirectory); } // Определение названия временного файла string tempFileHash = Hashing.GetMD5FileHash(documents.fileObject); string tempFileName = "temp_" + tempFileHash; // Определение относительного пути временного файла string tempFilePath = tempDirectory + "/" + tempFileName + ".temp"; HLogger.log.Info("Генерация имени временного файла:" + tempFilePath); // Получение условного типа файла string fileType = HFile.getFileType(documents.fileExp); HLogger.log.Debug("Тип файла:" + fileType); // Создание временного потока в памяти для хранения конвертированного файла SIO.MemoryStream resultAnswer = null; // Если тип файла невалидный, тогда отказ if (fileType == null) { HLogger.log.Warn("Невалидный тип файла"); return(NoContent()); } else // Иначе конвертируем в PDF { // Если файл относится к типу Word if (fileType == "doc") { resultAnswer = HFile.getConvertFileDoc(documents.fileObject, tempFilePath); } } // Если поток не пустой, тогда отправляем файл пользователю if (resultAnswer != null) { return(File(resultAnswer, documents.fileType, documents.fileName + ".pdf")); } else { HLogger.log.Error("Потока с результатом вывода не существует"); return(NoContent()); } }