public async Task <bool> Edit(BookingForEditDto booking) { var objectToEdit = _mapper.Map <Booking>(booking); _db.Bookings.Update(objectToEdit); await _db.SaveChangesAsync(); return(true); }
public async Task <IActionResult> Edit(BookingForEditDto bookingForEdit) { var result = await _bookingService.Edit(bookingForEdit); if (result) { return(Ok("Edit successful")); } else { return(BadRequest("Failed to Edit")); } }
public async Task <IActionResult> Edit(BookingForEditDto bookingForEdit) { if (!int.TryParse(User.FindFirst(ClaimTypes.NameIdentifier)?.Value ?? string.Empty, out var userId)) { return(Unauthorized()); } var booking = await _bookingRepository.GetById(bookingForEdit.Id); if (booking == null) { return(BadRequest("There was an error while processing Your request.")); } if (booking.UserId != userId) { return(Unauthorized()); } var passengersToUpdate = _mapper.Map <List <Passenger> >(bookingForEdit.Passengers); var passengersForBooking = await _passengerRepository.GetPassengersForBooking(bookingForEdit.Id, userId); var passengersId = new List <int>(); foreach (var passenger in passengersForBooking) { passengersId.Add(passenger.Id); } foreach (var passenger in passengersToUpdate) { if (!passengersId.Contains(passenger.Id)) { return(Unauthorized()); } } var updated = await _passengerRepository.UpdatePassengers(passengersToUpdate); return(updated != null?Ok() : BadRequest("There was an error while processing Your request.")); }