public async Task <IActionResult> AddReservation(int userId, ReservationForAddDto reservationForAddDto) { if (userId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value)) { return(Unauthorized()); } var userFromRepo = await _repo.GetUser(userId); reservationForAddDto.Start = reservationForAddDto.Start.AddHours(1); reservationForAddDto.AddEndDate(); reservationForAddDto.Title = userFromRepo.Name + ' ' + userFromRepo.Surname; var reservation = _mapper.Map <Reservation>(reservationForAddDto); if (await _repo.GoodTerm(reservation.Start) == false) { return(BadRequest("Wybrano zły termin.\nGabinet czynny od poniedziałku do piątku w godzinach 9-17")); } if (await _repo.FreeTerm(reservation.Start) == false) { return(BadRequest("Wybrany termin jest zarezerwowany")); } userFromRepo.Reservations.Add(reservation); if (await _repo.SaveAll()) { var reservationToReturn = _mapper.Map <ReservationForDetailedDto>(reservation); return(CreatedAtRoute("GetReservation", new { id = reservation.Id }, reservationToReturn)); } return(BadRequest("Nie można dodać wizyty")); }
public async Task <IActionResult> AddReservation(ReservationForAddDto reservationForAdd) { var reservation = _mapper.Map <Reservation>(reservationForAdd); foreach (var seat in reservationForAdd.SeatsReserved) { seat.ShowId = reservationForAdd.ShowId; } var reservationId = await _repo.AddReservation(reservation); var ticketId = await _ticketsRepository.AddTicket(new Ticket { Normal = reservationForAdd.NormalTickets, Reduced = reservationForAdd.ReducedTickets, ReservationId = reservationId, SeatsReserved = reservationForAdd.SeatsReserved, ShowId = reservationForAdd.ShowId, UserId = reservationForAdd.UserId }); await _repo.UpdateTicketId(ticketId, reservationId); await _repo.SaveAll(); return(StatusCode(201, reservationId)); }