/// <summary> /// Обработчик события нажатия клавиши мыши на кнопку, /// который производит отмену последнего добавления/редактирования /// </summary> private void btn_Cancel_Click(object sender, EventArgs e) { if (_formMode != FormMode.None) { var result = MessageBox.Show("Изменения не будут сохранены! Продолжить?", "Отмена изменений", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk); if (result == DialogResult.Yes) { try { if (_formMode == FormMode.Edit) { int indexOfElement = SoftTypes.IndexOf(CurrentSoftType); CurrentSoftType = _ctx.CancelChanges(CurrentSoftType); SoftTypes[indexOfElement] = CurrentSoftType; } else { SoftTypes.CancelNew(SoftTypes.IndexOf(CurrentSoftType)); } EnDisFields(false); _formMode = FormMode.None; } catch { MessageBox.Show("Произошла ошибка при отмене изменений!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }
/// <summary> /// Обработчик события нажатия клавиши мыши на кнопку, /// который совершает добавление нового типа программного обеспечения /// </summary> private void button2_Click(object sender, EventArgs e) { SoftTypes.AddNew(); softTypeBindingSource.MoveLast(); EnDisFields(true); _formMode = FormMode.Add; }
/// <summary> /// Обработчик события нажатия клавиши мыши на кнопку, /// который выполняет сохранение изменений /// </summary> private async void btn_Save_Click(object sender, EventArgs e) { if (_formMode != FormMode.None) { try { if (string.IsNullOrWhiteSpace(CurrentSoftType.Name)) { MessageBox.Show("Введите наименование типа программного обеспечения!", "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } bool existed = false; switch (_formMode) { case FormMode.Add: existed = await _ctx.CheckSoftTypeForDublicate(CurrentSoftType.Name); break; case FormMode.Edit: existed = await _ctx.CheckSoftTypeForDublicate(CurrentSoftType.Name) && !CurrentSoftType.Name.Equals(_softwareTypeNameBeforeEditing); break; } if (existed) { MessageBox.Show("Тип программного обеспечения с таким наименованием уже существует!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (_formMode == FormMode.Add) { SoftTypes.EndNew(SoftTypes.IndexOf(CurrentSoftType)); } _ctx.SaveChanges(); EnDisFields(false); Edited = true; _formMode = FormMode.None; DialogResult = DialogResult.OK; MessageBox.Show("Изменения успешно сохранены!", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch { MessageBox.Show("Изменения не удалось сохранить!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
/// <summary> /// Обработчик события нажатия клавиши мыши на графический объект, /// который производит поиск программного обеспечения по наименованию /// </summary> private void picBtn_FindByCondition_Click(object sender, EventArgs e) { if (string.IsNullOrWhiteSpace(textBox_ConditionToFind.Text)) { MessageBox.Show("Введите условие для поиска программного обеспечения!", "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } var firstFoundedElement = SoftTypes.FirstOrDefault(x => x.Name.ToUpper().Contains(textBox_ConditionToFind.Text.ToUpper())); if (firstFoundedElement != null) { softTypeBindingSource.Position = SoftTypes.IndexOf(firstFoundedElement); } else { MessageBox.Show("Не удалось найти программное обеспечение по указанному условию!", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information); } }