public ActionResult <RoomCheckOutResponse> CheckOutRoom(int roomId, [FromBody] RoomCheckOutInput checkOutInput) { if (checkOutInput == null) { return(BadRequest("Wrong input parameters")); } if (roomId == default) { return(BadRequest("Room Id required")); } var totalCost = new CheckOutRoomCommand(roomId, checkOutInput) .InTransactionScope() .Execute(_roomRepository); var selfLink = GetRoomSelfLinkById(roomId); var response = new RoomCheckOutResponse() { Id = roomId, TotalCost = totalCost }; return(Ok(response.WithLinks(selfLink))); }
public CheckOutRoomCommand(int roomId, RoomCheckOutInput checkOutInput) { Guard.IsNotNull(checkOutInput, nameof(checkOutInput)); _checkOutInput = checkOutInput; _roomId = roomId; }