/// <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); } } }