Esempio n. 1
0
        /// <summary>
        /// Сохранение изменений
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void buttonOk_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(textBoxCureName.Text))
            {
                MessageBox.Show("Поля, отмеченные звёздочкой, обязательны для заполнения", "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            try
            {
                var cureInfo = new CureClass();
                cureInfo.Name = textBoxCureName.Text;
                cureInfo.DefaultPerDayCount     = comboBoxPerDayCnt.Text;
                cureInfo.DefaultReceivingMethod = comboBoxReceivingMethod.Text;
                cureInfo.DefaultDuration        = comboBoxDuration.Text;

                if (string.IsNullOrEmpty(_cureSaveName))
                {
                    if (_dbEngine.GetCureByName(cureInfo.Name) != null)
                    {
                        MessageBox.Show("Лекарство с таким именем уже существует. Используйте другое имя.", "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }

                    if (textBoxCureName.Text.Contains("&") || comboBoxPerDayCnt.Text.Contains("&") || comboBoxReceivingMethod.Text.Contains("&") || comboBoxDuration.Text.Contains("&"))
                    {
                        MessageBox.Show("Использование символа '&' в полях запрещено т.к. может привести к внутренней ошибке программы. Используйте другой символ.", "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }

                    _dbEngine.AddCure(cureInfo);
                }
                else
                {
                    if (_cureSaveName != cureInfo.Name && _dbEngine.GetCureByName(cureInfo.Name) != null)
                    {
                        MessageBox.Show("Лекарство с таким именем уже существует. Используйте другое имя.", "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }

                    if (textBoxCureName.Text.Contains("&") || comboBoxPerDayCnt.Text.Contains("&") || comboBoxReceivingMethod.Text.Contains("&") || comboBoxDuration.Text.Contains("&"))
                    {
                        MessageBox.Show("Использование символа '&' в полях запрещено т.к. может привести к внутренней ошибке программы. Используйте другой символ.", "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }

                    _dbEngine.UpdateCure(_cureSaveName, cureInfo);
                }

                _isFormClosingByButton = true;
                Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }