public async Task <ActionResult> Create([FromBody] ReservationViewModel model) { if (model == null) { return(NotFound()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { var reservation = await _service.BookItem(model, User.Identity.Name); return(Ok(new { reservation.ReservationId })); } catch (UserNotFoundException) { ModelState.AddModelError("UserId", ErrorMessages.UserNotFound); return(BadRequest(ModelState)); } catch (ItemNotFoundException) { ModelState.AddModelError("ItemId", ErrorMessages.ItemNotFound); return(BadRequest(ModelState)); } catch (ReservationAlreadyExist) { ModelState.AddModelError("Reservation", ErrorMessages.ReservationAlreadyExists); return(BadRequest(ModelState)); } }