using ProjectGSM.Entities; using ProjectGSM.Entities.Enums; using ProjectGSM.Repositories; namespace ProjectGSM.Forms { public partial class FormStatusHistory : Form { private readonly IStatusHistoryRepository _statusHistoryRepository; public FormStatusHistory(IStatusHistoryRepository statusHistoryRepository, ICaseRepository caseRepository) { InitializeComponent(); _statusHistoryRepository = statusHistoryRepository ?? throw new ArgumentNullException(nameof(statusHistoryRepository)); try { caseBox.DataSource = caseRepository.ReadCases(); caseBox.DisplayMember = "Description"; caseBox.SelectedIndex = 0; } catch (Exception ex) { } statusBox.DataSource = Enum.GetValues(typeof(Status)); } private void saveButton_Click(object sender, EventArgs e) { try { if (caseBox.SelectedIndex < 0) { throw new Exception("Имеются незаполненные поля"); } _statusHistoryRepository.CreateStatusHistory(StatusHistory.CreateEntity(caseBox.SelectedIndex, (Status)statusBox.SelectedIndex!, priceNumeric.Value, dateTimePicker1.Value)); Close(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка при сохранении", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void cancelButton_Click(object sender, EventArgs e) => Close(); } }