using ProjectGarage.Entities; using ProjectGarage.Repositories; using ProjectGarage.Repositories.Implementations; 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; namespace ProjectGarage.Forms { public partial class FormTransportation : Form { private readonly ITransportationRepository _transportationRepository; public FormTransportation(ITransportationRepository transportationRepository, IFuelRepository fuelRepository, IDriverRepository driverRepository, IRouteRepository routeRepository) { InitializeComponent(); _transportationRepository = transportationRepository ?? throw new ArgumentNullException(nameof(transportationRepository)); comboBoxDriver.DataSource = driverRepository.ReadDrivers(); comboBoxDriver.DisplayMember = "Fname"; comboBoxDriver.ValueMember = "Id"; comboBoxFuel.DataSource = fuelRepository.ReadFuels(); comboBoxFuel.DisplayMember = "FuelName"; comboBoxFuel.ValueMember = "Id"; comboBoxRoute.DataSource = routeRepository.ReadRoute(); comboBoxRoute.DisplayMember = "RouteName"; comboBoxRoute.ValueMember = "Id"; } private void ButtonTransportationSave_Click(object sender, EventArgs e) { try { if (comboBoxFuel.SelectedIndex < 0 || comboBoxDriver.SelectedIndex < 0 || comboBoxRoute.SelectedIndex < 0) { throw new Exception("Имеются незаполненные поля"); } _transportationRepository.CreateTransportation(Transportation.CreateTransportation(0, (int)comboBoxFuel.SelectedValue!, (int)comboBoxRoute.SelectedValue!, (int)comboBoxDriver.SelectedValue!, Convert.ToInt32(numericUpDownAmountFuel.Value))); Close(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка при сохранении", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void ButtonTransportationCancel_Click(object sender, EventArgs e) => Close(); } }