예제 #1
0
        public IViewComponentResult Invoke(int bikeId)
        {
            var vm = new CustomerReservationViewModel
            {
                RequestedBikeId = bikeId
            };

            return(View(vm));
        }
        public async Task <IActionResult> CreateReservation(CustomerReservationViewModel vm)
        {
            Bike bike = await _reservationService.GetBikeFromId(vm.RequestedBikeId);

            if (bike == null)
            {
                return(BadRequest());
            }

            // Refresh page if model validation fails
            if (!ModelState.IsValid)
            {
                TempData["InvalidSubmit"] = true;
                return(View(nameof(Index), bike));
            }

            // Create a reservation and move to confirmation page
            Reservation createdReservation = await _reservationService
                                             .CreateReservation(vm.Customer, vm.RequestedBikeId, vm.DaysRequested);

            return(View("ReservationConfirmed", createdReservation));
        }