Exemplo n.º 1
0
        /// <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);
                }
            }
        }