using System; using System.Windows.Forms; using YourNamespace.Entities; using YourNamespace.Repositories; namespace YourNamespace.Forms { public partial class FormPassenger : Form { private readonly IPassengerRepository _passengerRepository; private int? _passengerId; public int Id { set { try { var passenger = _passengerRepository.ReadPassengerById(value); if (passenger == null) { throw new InvalidDataException(nameof(passenger)); } textBoxFirstName.Text = passenger.FirstName; textBoxLastName.Text = passenger.LastName; textBoxPassportNumber.Text = passenger.PassportNumber; _passengerId = value; } catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка при получении данных", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } } public FormPassenger(IPassengerRepository passengerRepository) { InitializeComponent(); _passengerRepository = passengerRepository ?? throw new ArgumentNullException(nameof(passengerRepository)); } private void ButtonSave_Click(object sender, EventArgs e) { try { if (string.IsNullOrWhiteSpace(textBoxFirstName.Text) || string.IsNullOrWhiteSpace(textBoxLastName.Text) || string.IsNullOrWhiteSpace(textBoxPassportNumber.Text)) { throw new Exception("Имеются незаполненные поля"); } if (_passengerId.HasValue) { _passengerRepository.UpdatePassenger(CreatePassenger(_passengerId.Value)); } else { _passengerRepository.CreatePassenger(CreatePassenger(0)); } Close(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка при сохранении", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void ButtonCancel_Click(object sender, EventArgs e) => Close(); private Passenger CreatePassenger(int id) => Passenger.CreateEntity(id, textBoxFirstName.Text, textBoxLastName.Text, textBoxPassportNumber.Text); } }