public async Task <IActionResult> UploadAsync(IFormFile file) { try { if (file.Length > 0) { (string requestId, string tempFileDir) = Helper.GetRequestIdandTempDir(); var fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"'); var normalizedFileName = requestId + ".docx"; var tempFilePath = Path.Combine(tempFileDir, normalizedFileName); using (var tempFileStream = new FileStream(tempFilePath, mode: FileMode.Create)) { file.CopyTo(tempFileStream); tempFileStream.Close(); } ConversionResult cmdRes = null; cmdRes = await Runner.Docx2HubAsync(tempFilePath); if (cmdRes.ResultFilePath == null || System.IO.File.Exists(cmdRes.ResultFilePath) != true) { string details = cmdRes.ToString(); return(Problem(detail: details)); } return(PhysicalFile(cmdRes.ResultFilePath, MimeTypeMap.GetMimeType("xml"))); } else { return(BadRequest()); } } catch (Exception ex) { return(StatusCode(500, $"Internal server error: {ex}")); } }