コード例 #1
0
        public async Task <ActionResult> Post([FromBody] AddReservationDto reservation)
        {
            var takenSeats = await _showingsService.GetTakenSeats(reservation.ShowingId);

            if (reservation.Seat <= 0)
            {
                return(BadRequest(new ErrorMessage($"Seat number must be greater than 0")));
            }
            if (takenSeats.Select(s => s.Number).Contains(reservation.Seat))
            {
                return(BadRequest(new ErrorMessage($"Seat {reservation.Seat} is already taken!")));
            }
            await _reservationsService.Add(reservation);

            var seats = await _showingsService.GetTakenSeats(reservation.ShowingId);

            await _hubContext.Clients.All.SendAsync("OnSeatsChanged", seats);

            return(Ok());
        }
コード例 #2
0
        public async Task <ActionResult <IList <SeatDto> > > GetTakenSeats(int showingId)
        {
            var result = await _showingsService.GetTakenSeats(showingId);

            return(result == null?NotFound(new ErrorMessage("Showing not found")) : (ActionResult)Ok(result));
        }