コード例 #1
0
        private void addCheck(object sender, EventArgs e)
        {
            check.appointment_id  = Convert.ToInt32(cbAppointment.SelectedValue.ToString());
            check.check_status_id = 1;
            check.service_cost    = Convert.ToInt32(txtServiceCost.Text.Trim());

            if (String.IsNullOrEmpty(cbAppointment.SelectedItem.ToString()) || String.IsNullOrEmpty(check.service_cost.ToString()))
            {
                MessageBox.Show("Все поля должны быть заполненны"); return;
            }

            var regexNumberID = @"^[1-9]\d{0,7}$";

            if (!Regex.IsMatch(txtServiceCost.Text, regexNumberID))
            {
                MessageBox.Show("Стоимсоть должна состоять из цифр и иметь длинну не более 7 символов", "Ошибка"); return;
            }


            using (DANTDBEntities db = new DANTDBEntities())
            {
                Check model = (from u in db.Check
                               orderby u.number_check descending
                               select u).FirstOrDefault();
                check.number_check = model.number_check + 1;
                if (model == null)
                {
                    MessageBox.Show("Ошибка закрузки данных", "Ошибка");
                    return;
                }
            }

            if (MessageBox.Show("Создать чек? Детали чека изменить нельзя", "Создать чек", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                using (DANTDBEntities db = new DANTDBEntities())
                {
                    db.Check.Add(check);
                    db.SaveChanges();
                }
                using (DANTDBEntities db = new DANTDBEntities())
                {
                    appointment                 = db.Appointment.Where(x => x.id == check.appointment_id).FirstOrDefault();
                    appointment.status_id       = 4;
                    db.Entry(appointment).State = EntityState.Modified;
                    db.SaveChanges();
                }
                txtServiceCost.Text = "";
                appointment.id      = 0;
                updateTable();
                MessageBox.Show("Данные успешно добавлены");
            }
            else
            {
                return;
            }
        }
コード例 #2
0
 private void ChangeCheck(object sender, EventArgs e)
 {
     check.check_status_id = 2;
     using (DANTDBEntities db = new DANTDBEntities())
     {
         db.Entry(check).State = EntityState.Modified;
         db.SaveChanges();
     }
     btnChangeCheck.Enabled = false;
     UpdateTable();
 }
コード例 #3
0
 //Удаление записи
 private void DeleteAppointment(object sender, EventArgs e)
 {
     if (MessageBox.Show("Удалить эту запись?", "Удаление", MessageBoxButtons.YesNo) == DialogResult.Yes)
     {
         using (DANTDBEntities db = new DANTDBEntities())
         {
             appointment.status_id       = 6;
             db.Entry(appointment).State = EntityState.Modified;
             db.SaveChanges();
         }
     }
     ClearAppointment();
     btnClearAppointment.Enabled = false;
     MessageBox.Show("Удаление прошло успешно");
 }
コード例 #4
0
        //Функция добавления и обновления данных клиентов (вызывается нажатием на кнопку).
        private void AddClient(object sender, EventArgs e)
        {
            //Присвоение полям класса Client данных из TextBox
            client.surname    = txtClientSurname.Text.Trim();
            client.name       = txtClientName.Text.Trim();
            client.patronymic = txtClientPatronymic.Text.Trim();
            client.phone      = txtClientPhone.Text.Trim();

            //Проверка на заполненные поля
            if (String.IsNullOrEmpty(client.surname) || String.IsNullOrEmpty(client.name) || String.IsNullOrEmpty(client.patronymic) || String.IsNullOrEmpty(client.phone))
            {
                MessageBox.Show("Все поля должны быть заполненны");
                return;
            }

            //Проверки на введенную в TextBox информацию
            var regexName        = @"^([А-Я]{1}[а-яё]{1,23}|[A-Z]{1}[a-z]{1,23})$";
            var regexNumberPhone = @"^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$";

            if (!Regex.IsMatch(txtClientName.Text, regexName) || !Regex.IsMatch(txtClientSurname.Text, regexName) || !Regex.IsMatch(txtClientPatronymic.Text, regexName))
            {
                MessageBox.Show("Имя должно быть соответсвовать следующим требованиям:\n- Имя может состоять только из букв одного языка;\n- В имени обязательна должна присутствовать заглавная буква;\n" +
                                "- Имя должно состоять как минимум из 2 букв и максимум из 24;\n- Имя недолжно содержать никаких других символов, кроме букв.", "Ошибка"); return;
            }

            if (!Regex.IsMatch(txtClientPhone.Text, regexNumberPhone))
            {
                MessageBox.Show("Номер телефона не соотвествует стандартам", "Ошибка"); return;
            }

            //Следующий блок отвечает за заполнение поля card_number. Так как после добавления нового клиента этот номер должен увеличиваться на 1
            //Если поле id == 0, это означает то, что происходит ДОБАВЛЕНИЕ новых данных, а не ОБНОВЛЕНИЕ
            if (client.id == 0)
            {
                //Открываем соединение с бд с помощью оператора using
                using (DANTDBEntities db = new DANTDBEntities())
                {
                    //LINQ запрос берет таблицу Client, сортирует ее по убыванию столбца card_number и берет первую строку (в этом случае номер карты будет последнем добавленным)
                    Client model = (from u in db.Client
                                    orderby u.card_number descending
                                    select u).FirstOrDefault();
                    if (model != null)
                    {
                        client.card_number = model.card_number + 1;
                    }
                    else
                    {
                        //В случае если в результате запроса не было выбранно строки это значит что таблица пуста и card_number будет иметь исходне значение 100000
                        client.card_number = 100000;
                    }
                }
            }
            //Если поле id != 0 то происходит обновление данных и данные карты будут браться из TextBox
            else
            {
                client.card_number = Convert.ToInt32(txtNumberCard.Text.Trim());
            }

            //Следующий блок отвечает за добавление или обновление данных
            using (DANTDBEntities db = new DANTDBEntities())
            {
                //Добавление
                if (client.id == 0)
                {
                    db.Client.Add(client);
                }
                //Обновление
                else
                {
                    db.Entry(client).State = EntityState.Modified;
                }
                //Сохранение данных
                db.SaveChanges();
            }

            //Очищаем TextBox
            txtClientName.Text     = txtClientSurname.Text = txtClientPatronymic.Text = txtClientPhone.Text = txtNumberCard.Text = "";
            btnClearClient.Enabled = false;
            //Добавляем значение 0 полю id
            client.id = 0;
            //Заполняем таблицу клиентов новыми данными
            this.clientTableAdapter.Fill(this.clientData.Client);
            MessageBox.Show("Данные успешно добавлены");
        }
コード例 #5
0
        //Добавление добавления и обновления данных записей (вызывается нажатием на кнопку)
        private void AddAppointment(object sender, EventArgs e)
        {
            DateTime dateAppointment = new DateTime(dtDateAppointment.Value.Year, dtDateAppointment.Value.Month, dtDateAppointment.Value.Day);

            appointment.client_id   = Convert.ToInt32(txtClientID.Text.Trim());
            appointment.employee_id = Convert.ToInt32(cmbDoctorName.SelectedValue.ToString());
            appointment.date        = dtDateAppointment.Value.Date;
            appointment.time_id     = Convert.ToInt32(cbTime.SelectedValue);

            if (String.IsNullOrEmpty(appointment.client_id.ToString()) || String.IsNullOrEmpty(appointment.employee_id.ToString()) || String.IsNullOrEmpty(appointment.date.ToString()) || String.IsNullOrEmpty(appointment.time_id.ToString()))
            {
                MessageBox.Show("Все поля должны быть заполненны"); return;
            }

            var regexNumberID = @"^[1-9]\d{0,7}$";

            if (!Regex.IsMatch(txtClientID.Text, regexNumberID))
            {
                MessageBox.Show("ID должно состоять из цифр и иметь длинну не более 7 символов", "Ошибка"); return;
            }

            using (DANTDBEntities db = new DANTDBEntities())
            {
                Appointment model = (from u in db.Appointment
                                     orderby u.number_appointment descending
                                     select u).FirstOrDefault();
                if (model != null)
                {
                    appointment.number_appointment = model.number_appointment + 1;
                }
                else
                {
                    appointment.number_appointment = 510000;
                }
            }

            if (appointment.id == 0)
            {
                if (!VerificationForm(dateAppointment))
                {
                    return;
                }
            }


            using (DANTDBEntities db = new DANTDBEntities())
            {
                if (appointment.id == 0)
                {
                    appointment.status_id = 1;
                    db.Appointment.Add(appointment);
                }
                else
                {
                    appointment.status_id = Convert.ToInt32(cbAppointmentStatus.SelectedValue);
                    if (appointment.status_id == 1)
                    {
                        MessageBox.Show("Нельзя поменять статус записи на 'Записан'", "Ошибка"); return;
                    }
                    else if (DateTime.Today < dateAppointment && appointment.status_id == 2)
                    {
                        MessageBox.Show("Нельзя поменять статус записи на 'Явился на прием' до такого как наступит дата приема ", "Ошибка"); return;
                    }
                    else if (DateTime.Today < dateAppointment && appointment.status_id == 3)
                    {
                        MessageBox.Show("Нельзя поменять статус записи на 'Не явился на прием' до такого как наступит дата приема ", "Ошибка"); return;
                    }
                    db.Entry(appointment).State = EntityState.Modified;
                }
                db.SaveChanges();
            }
            txtClientID.Text = cmbDoctorName.Text = dtDateAppointment.Text = cbTime.Text = "";
            appointment.id   = 0;
            this.dataTable1TableAdapter3.Fill(this.appointmentData1.DataTable1);
            MessageBox.Show("Данные успешно добавлены");
            ClearAppointment();
        }