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()); }
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)); }