public async Task <IActionResult> Post([FromBody] BookViewModel bookViewModel) { try { if (!ModelState.IsValid) { return(BadRequest(new { message = "Invalid model state." })); } var bookViewModelResult = await _bookAppService.AddAsync(bookViewModel); if (bookViewModelResult?.Data == null) { return(BadRequest(new { message = "A problem occurred during adding the data." })); } var uri = Url.Action("Get", new { id = bookViewModelResult.Data.Id }); return(Created(uri, bookViewModelResult.Data)); } catch (ExceptionHandler exceptionHandler) { return(ResponseByHttpStatusCode(exceptionHandler)); } }