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; } }
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(); }
//Удаление записи 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("Удаление прошло успешно"); }
//Функция добавления и обновления данных клиентов (вызывается нажатием на кнопку). 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("Данные успешно добавлены"); }
//Добавление добавления и обновления данных записей (вызывается нажатием на кнопку) 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(); }