using RouteGuideContracts.BusinessLogicsContracts; using RouteGuideContracts.ViewModels; using RouteGuideDataModels.Models; 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 RouteGuideView { /// /// Форма для привязки остановки к маршруту /// public partial class FormRouteStop : Form { /// /// Список остановок /// private readonly List? _list; /// /// Идентификатор остановки /// public object Id { get { return comboBoxStop.SelectedValue; } set { comboBoxStop.SelectedValue = value; } } /// /// Сущность "Остановка" /// public IStopModel? StopModel { get { if (_list == null) { return null; } foreach (var elem in _list) { if (elem.Id == Id) { return elem; } } return null; } } /// /// Номер остановки в маршруте /// public int Number { get { return Convert.ToInt32(textBoxNumber.Text); } set { textBoxNumber.Text = value.ToString(); } } /// /// Конструктор /// /// public FormRouteStop(IStopLogic stopLogic) { InitializeComponent(); // Загрузка списка остановок для ComboBoxStop _list = stopLogic.ReadList(null); if (_list != null) { comboBoxStop.DisplayMember = "Name"; comboBoxStop.ValueMember = "Id"; comboBoxStop.DataSource = _list; comboBoxStop.SelectedItem = null; } } /// /// Кнопка "Сохранить" /// /// /// private void buttonSave_Click(object sender, EventArgs e) { if (comboBoxStop.SelectedValue == null) { MessageBox.Show("Выберите остановку", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (string.IsNullOrEmpty(textBoxNumber.Text)) { MessageBox.Show("Заполните номер остановки", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } DialogResult = DialogResult.OK; Close(); } /// /// Кнопка "Отмена" /// /// /// private void buttonCancel_Click(object sender, EventArgs e) { DialogResult = DialogResult.Cancel; Close(); } } }