/// <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 = ServiceTypes.IndexOf(CurrentServiceType); CurrentServiceType = _ctx.CancelChanges(CurrentServiceType); ServiceTypes[indexOfElement] = CurrentServiceType; } else { ServiceTypes.CancelNew(ServiceTypes.IndexOf(CurrentServiceType)); } EnDisFields(false); _formMode = FormMode.None; } catch { MessageBox.Show("Произошла ошибка при отмене изменений!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }
/// <summary> /// Обработчик события нажатия клавиши мыши на кнопку, /// который выполняет сохранение изменений /// </summary> private async void btn_Save_Click(object sender, EventArgs e) { if (_formMode != FormMode.None) { try { if (string.IsNullOrWhiteSpace(CurrentServiceType.Name)) { MessageBox.Show("Введите наименование типа сервиса!", "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } bool existed = false; switch (_formMode) { case FormMode.Add: existed = await _ctx.CheckServiceTypeForDublicate(CurrentServiceType.Name); break; case FormMode.Edit: existed = await _ctx.CheckServiceTypeForDublicate(CurrentServiceType.Name) && !CurrentServiceType.Name.Equals(_serviceTypeNameBeforeEditing); break; } if (existed) { MessageBox.Show("Тип сервиса с таким наименованием уже существует!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (_formMode == FormMode.Add) { ServiceTypes.EndNew(ServiceTypes.IndexOf(CurrentServiceType)); } await _ctx.SaveChangesAsync(); 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 = ServiceTypes.FirstOrDefault(x => x.Name.ToUpper().Contains(textBox_ConditionToFind.Text.ToUpper())); if (firstFoundedElement != null) { serviceTypeBindingSource.Position = ServiceTypes.IndexOf(firstFoundedElement); } else { MessageBox.Show("Не удалось найти тип сервиса по указанному условию!", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information); } }