public async Task <BookedFlight> UpdateAsync(BookedFlight entity) { using (var transaction = _context.Database.BeginTransaction()) { try { var existing = await _context.BookedFlights.FirstOrDefaultAsync(x => x.Id == entity.Id) ?? throw new Exception("Booked flight with given identifier not found."); _context.Entry(existing).CurrentValues.SetValues(entity); await _context.SaveChangesAsync(); transaction.Commit(); } catch (Exception e) { transaction.Rollback(); throw new DbUpdateException("There was an issue updating item in the Database." + e.Message, e); } } return(await _context.BookedFlights .AsNoTracking() .Include(x => x.BookingStatus) .Include(x => x.Flight) .Include(x => x.UserProfile) .FirstOrDefaultAsync(x => x.Id == entity.Id)); }
public async Task <BookedFlightDto> Create(int flightId, int seatNumber, int userId) { var existing = await _flightRepository.GetAsync(flightId); if (existing == null) { throw new Exception("Flight with given id not found"); } if (!DateValidation(existing)) { throw new Exception("Booking must be 72 hours before the flight."); } if (!SeatValidation(existing, seatNumber)) { throw new Exception("Number of booked seats exceeds free seats."); } var newEntity = new BookedFlight() { BookingStatusId = (int)BookingStatusEnum.Submited, FlightId = flightId, BookSeats = seatNumber, UserProfileId = userId }; var newEntityId = await _repository.CreateAsync(newEntity); var bookedFlight = await _repository.GetAsync(newEntityId); return(_mapper.Map <BookedFlightDto>(bookedFlight)); }
public async Task <int> CreateAsync(BookedFlight entity) { using (var transaction = _context.Database.BeginTransaction()) { try { var result = await _context.BookedFlights.AddAsync(entity); await _context.SaveChangesAsync(); transaction.Commit(); return(result.Entity.Id); } catch (DbUpdateException e) { transaction.Rollback(); throw new DbUpdateException("There was an issue adding to Database", e); } } }
private void btnSaveBooked_Click(object sender, RoutedEventArgs e) { BookedFlight booked = null; if (action == ActionState.New) { try { Client client = (Client)cmbClients.SelectedItem; Flight flight = (Flight)cmbFlights.SelectedItem; //instantiem Order entity booked = new BookedFlight() { ClientId = client.Id, FlightId = flight.Id }; //adaugam entitatea nou creata in context ctx.BookedFlights.Add(booked); clientBookedFlightsViewSource.View.Refresh(); //salvam modificarile ctx.SaveChanges(); } catch (DataException ex) { MessageBox.Show(ex.Message); } btnNewBooked.IsEnabled = true; btnEditBooked.IsEnabled = true; btnDeleteBooked.IsEnabled = true; btnSaveBooked.IsEnabled = false; btnCancelBooked.IsEnabled = false; bookedFlightsDataGrid.IsEnabled = true; btnPreviousBooked.IsEnabled = true; btnNextBooked.IsEnabled = true; cmbClients.IsEnabled = true; cmbFlights.IsEnabled = true; } else { if (action == ActionState.Edit) { dynamic selectedBookedFlight = bookedFlightsDataGrid.SelectedItem; try { int curr_id = selectedBookedFlight.Id; var editedBookedFlight = ctx.BookedFlights.FirstOrDefault(s => s.Id == curr_id); if (editedBookedFlight != null) { editedBookedFlight.ClientId = Int32.Parse(cmbClients.SelectedValue.ToString()); editedBookedFlight.FlightId = Convert.ToInt32(cmbFlights.SelectedValue.ToString()); //salvam modificarile ctx.SaveChanges(); } } catch (DataException ex) { MessageBox.Show(ex.Message); } // pozitionarea pe item-ul curent clientViewSource.View.MoveCurrentTo(selectedBookedFlight); btnNewBooked.IsEnabled = true; btnEditBooked.IsEnabled = true; btnDeleteBooked.IsEnabled = true; btnSaveBooked.IsEnabled = false; btnCancelBooked.IsEnabled = false; bookedFlightsDataGrid.IsEnabled = true; btnPreviousBooked.IsEnabled = true; btnNextBooked.IsEnabled = true; cmbClients.IsEnabled = false; cmbFlights.IsEnabled = false; } else if (action == ActionState.Delete) { try { dynamic selectedBookedFlight = bookedFlightsDataGrid.SelectedItem; int curr_id = selectedBookedFlight.Id; var deletedBookedFlight = ctx.BookedFlights.FirstOrDefault(s => s.Id == curr_id); if (deletedBookedFlight != null) { ctx.BookedFlights.Remove(deletedBookedFlight); ctx.SaveChanges(); MessageBox.Show("Reservation Deleted Successfully", "Message"); } } catch (DataException ex) { MessageBox.Show(ex.Message); } btnNewBooked.IsEnabled = true; btnEditBooked.IsEnabled = true; btnDeleteBooked.IsEnabled = true; btnSaveBooked.IsEnabled = false; btnCancelBooked.IsEnabled = false; bookedFlightsDataGrid.IsEnabled = true; btnPreviousBooked.IsEnabled = true; btnNextBooked.IsEnabled = true; cmbClients.IsEnabled = false; cmbFlights.IsEnabled = false; //SetValidationBinding(); } } }