public async ValueTask <ActionResult> UploadBook(string description, string language, IFormFile content) { using var stream = content.OpenReadStream(); var bookId = await _bookRepository.NextBookIdAsync(); var book = new Book(bookId, new(language), new(description)); var bookContent = new BookContent(bookId, stream); await _bookRepository.AddBookWithContentAsync(book, bookContent); var result = new { bookId = bookId.Value }; return(CreatedAtAction(nameof(GetBookById), result, result)); }