Beispiel #1
0
        public async Task <IActionResult> Book(int id)
        {
            var movieProjection = await this.movieProjectionsService
                                  .GetViewModelByIdAsync <MovieProjectionDetailsViewModel>(id);

            var soldSeats = await this.seatsService.GetAllSoldSeatsAsync(movieProjection.Hall.Id);

            var availableSeats = await this.seatsService.GetAllAvailableSeatsAsync(movieProjection.Hall.Id);

            var viewModel = new MovieProjectionViewModel
            {
                MovieProjection = movieProjection,
                SoldSeats       = soldSeats,
                AvailableSeats  = availableSeats,
            };

            return(this.View(viewModel));
        }
Beispiel #2
0
        public async Task <IActionResult> Book(MovieProjectionViewModel movieProjectionViewModel, [FromRoute] int id)
        {
            if (!this.ModelState.IsValid)
            {
                var movieProjection = await this.movieProjectionsService
                                      .GetViewModelByIdAsync <MovieProjectionDetailsViewModel>(id);

                var soldSeats = await this.seatsService.GetAllSoldSeatsAsync(movieProjection.Hall.Id);

                var availableSeats = await this.seatsService.GetAllAvailableSeatsAsync(movieProjection.Hall.Id);

                var viewModel = new MovieProjectionViewModel
                {
                    MovieProjection = movieProjection,
                    SoldSeats       = soldSeats,
                    AvailableSeats  = availableSeats,
                    Ticket          = movieProjectionViewModel.Ticket,
                };

                return(this.Json(new
                {
                    Success = false,
                    Model = viewModel,
                    Message = ModelErrorsHelper.GetModelErrors(this.ModelState),
                }));
            }

            try
            {
                var result = await this.ticketsService.BuyAsync(movieProjectionViewModel.Ticket, id);

                return(this.Json(new
                {
                    Success = true,
                    Message = OperationalMessages.SuccessfullyBookedMovieProjection,
                }));
            }
            catch (ArgumentException aex)
            {
                return(this.Json(new { Success = false, Message = aex.Message }));
            }
        }