using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using ProjectAirline.Repositories; using ProjectAirline.Entities; using ProjectAirline.Repositories.Implementations; namespace ProjectAirline.Forms { public partial class FormTicket : Form { private readonly ITicketRepository _ticketRepository; private int? _ticketId; public FormTicket(ITicketRepository ticketRepository, IPassengerRepository passengerRepository, IFlightRepository flightRepository) { InitializeComponent(); _ticketRepository = ticketRepository ?? throw new ArgumentNullException(nameof(ticketRepository)); comboBoxFlight.DataSource = flightRepository.ReadFlights(); comboBoxFlight.DisplayMember = "AirplaneID"; comboBoxFlight.ValueMember = "Id"; comboBoxPassenger.DataSource = passengerRepository.ReadPassengers(); comboBoxPassenger.DisplayMember = "FirstName"; comboBoxPassenger.ValueMember = "Id"; } private void ButtonAdd_Click(object sender, EventArgs e) { try { if (comboBoxPassenger.SelectedIndex < 0 || comboBoxFlight.SelectedIndex < 0 || numericUpDownPrice.Value <= 0) { throw new Exception("Имеются незаполненны поля"); } _ticketRepository.CreateTicket(Ticket.CreateTicket(0, (int)comboBoxFlight.SelectedValue!, (int)comboBoxPassenger.SelectedValue!, Convert.ToInt32(numericUpDownPrice.Value), dateTimePickerBuy.Value)); Close(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка при сохранении", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void ButtonCancel_Click(object sender, EventArgs e) { Close(); } } }