private void GoLK_Click(object sender, RoutedEventArgs e) { AllDoctorPersonalCabinet ad = new AllDoctorPersonalCabinet(user_login); this.Close(); ad.Show(); }
//Обработка нажатия на кнопку авторизации private void authorization_ButtonClick(object sender, RoutedEventArgs e) { #region Старый код из проекта WinForms //Обработка возможных инъекций и параметры ввода if (login_textBox.Text.Contains(";") || login_textBox.Text.Contains("-") || login_textBox.Text.Contains("\"") || login_textBox.Text.Length <= 3) { MessageBox.Show("Логин не может содержать следующие символы: ; - \" а его длина должна превышать 3 символа"); login_textBox.Background = new SolidColorBrush(Color.FromRgb(128, 36, 36)); //Проверка passwordBox if (pasword_PasswordBox.Password.Contains(";") || pasword_PasswordBox.Password.Contains("-") || pasword_PasswordBox.Password.Contains("\"") || pasword_PasswordBox.Password.Length <= 3) { MessageBox.Show("Пароль не может содержать следующие символы: ; - \" а его длина должна превышать 3 символа"); pasword_PasswordBox.Background = new SolidColorBrush(Color.FromRgb(128, 32, 32)); } } //Проверка passwordBox в том случае, если ошибки в login_textBox не возникло.. else if (pasword_PasswordBox.Password.Contains(";") || pasword_PasswordBox.Password.Contains("-") || pasword_PasswordBox.Password.Contains("\"") || pasword_PasswordBox.Password.Length <= 3) { MessageBox.Show("Пароль не может содержать следующие символы: ; - \" а его длина должна превышать 3 символа"); pasword_PasswordBox.Background = new SolidColorBrush(Color.FromRgb(128, 32, 32)); } //Попытка поиска логина/пароля в БД else { //Подключаемся к БД using (MySqlConnection connection = new MySqlConnection(conn)) { connection.Open(); //Ищем совпадение MySqlCommand login_command = new MySqlCommand($"SELECT COUNT(*) FROM doctors WHERE login=\"{login_textBox.Text}\" and password=\"{pasword_PasswordBox.Password}\";", connection); //Если нашли - авторизуемся if (Convert.ToInt32(login_command.ExecuteScalar()) == 1) { //Запишем данные в файл using (BinaryWriter writer = new BinaryWriter(File.Open(path, FileMode.Create))) { writer.Write(login_textBox.Text); writer.Write(pasword_PasswordBox.Password); } //Определяю, какую форму нужно открыть данному пользователю login_command.CommandText = $"SELECT id_post FROM doctors WHERE login=\"{login_textBox.Text}\";"; var profession_id = login_command.ExecuteScalar(); switch (profession_id) { //Главный врач case 5: MainDoctorCabinet f1 = new MainDoctorCabinet(login_textBox.Text); f1.Show(); this.Close(); break; //Администратор БД case 6: AdminForm af = new AdminForm(login_textBox.Text); this.Close(); af.Show(); break; //Бывший сотрудник case 7: MessageBox.Show("Бывшие сотрудники не имеют доступа к базе данных.\nЕсли возникла ошибка, то просим вас обратиться к руководству поликлиники"); break; //Сотрудник регистратуры case 8: MessageBox.Show("Сотрудники регистратуры используют отдельное от этого приложение.\nДля его получения обратитесь к руководству поликлиники"); break; //Медицинский персонал( Терапевты, Хирурги и тд... ) default: // AllDoctorsForm AllDoctors = new AllDoctorsForm(LogintextBox.Text); // this.Hide(); // AllDoctors.Show(); AllDoctorPersonalCabinet allDoctor = new AllDoctorPersonalCabinet(login_textBox.Text); this.Close(); allDoctor.Show(); break; } } else { MessageBox.Show("Указанный пользователь не найден"); } } } #endregion }
//Закончить прием пациента private void EndWisiting_ButtonClick(object sender, RoutedEventArgs e) { bool CanEndWisiting = true; if (String.IsNullOrEmpty(diagnosis_TextBox.Text)) { MessageBox.Show("Вы должны поставить диагноз пациента!"); CanEndWisiting = false; } if (symptomsRichTextBox.Document.ContentStart.GetOffsetToPosition(symptomsRichTextBox.Document.ContentEnd) == 2) { MessageBox.Show("Вы должны заполнить поле с симптомами пациента перед окончанием приема."); } if (HealingRichTextBox.Document.ContentStart.GetOffsetToPosition(HealingRichTextBox.Document.ContentEnd) == 2) { MessageBox.Show("Вы должны заполнить рекомендации для лечения болезни пациента перед окончанием приема."); CanEndWisiting = false; } if (spravka_true.IsChecked == true) { switch (certificate_ComboBox.SelectedIndex) { //086 case 0: if (CanEndWisiting) { //Создаем объект документа Word.Document doc = null; try { //Получаем массив байтов из нашего файла byte[] textByteArray = File.ReadAllBytes(@"" + AppDomain.CurrentDomain.BaseDirectory + "\\086.docx"); //Пересоздаем нужный нам файл Random rng = new Random(); string file_name = @"spravki\" + "doctor" + rng.Next(Int32.MinValue, Int32.MaxValue) + ".docx"; MessageBox.Show(AppDomain.CurrentDomain.BaseDirectory + file_name); File.WriteAllBytes(file_name, textByteArray); // Создаём объект приложения Word.Application app = new Word.Application(); //Путь до шаблона документа string source = @"" + AppDomain.CurrentDomain.BaseDirectory + file_name; //Открываем doc = app.Documents.Open(source); doc.Activate(); //Добавляем информацию //WBookmarks содержит все закладки Word.Bookmarks wBookmarks = doc.Bookmarks; Word.Range wRange; int i = 0; // string[] data = new string[11] { adress, dr_day, DateTime.Now.Day.ToString(), diagnosis_TextBox.Text, FIO_pacient, FIO_doctor, MyClass.ConvertStringNumberToMonth(dr_month), MyClass.ConvertStringNumberToMonth(DateTime.Now.Month.ToString()), work_position, dr_year, DateTime.Now.Year.ToString() }; foreach (Word.Bookmark mark in wBookmarks) { wRange = mark.Range; wRange.Text = data[i]; i++; } doc.Close(); doc = null; Process.Start("" + AppDomain.CurrentDomain.BaseDirectory + file_name); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } using (MySqlConnection connection = new MySqlConnection(conn)) { connection.Open(); MySqlCommand command; command = new MySqlCommand($"INSERT INTO journal_wisiting VALUES({local_id_journal},\"{new TextRange(symptomsRichTextBox.Document.ContentStart, symptomsRichTextBox.Document.ContentEnd).Text}\"" + $", \"{diagnosis_TextBox.Text}\", \"{new TextRange(HealingRichTextBox.Document.ContentStart, HealingRichTextBox.Document.ContentEnd).Text}\")", connection); command.ExecuteNonQuery(); //Добавить информацию о справке //Макс id справки command.CommandText = "SELECT MAX(id_references) FROM certificate_issuance_journal"; int id_certificate = 0; if (command.ExecuteScalar() == DBNull.Value) { id_certificate = 1; } else { id_certificate = Convert.ToInt32(command.ExecuteScalar()) + 1; } //поиск id доктора MySqlCommand doctor_id = new MySqlCommand($"SELECT id_doctor FROM doctors WHERE login=\'{user_login}\'", connection); int doc_id = Convert.ToInt32(doctor_id.ExecuteScalar()); //дата закрытия справки DateTime close_certificate_Date = DateTime.Now; close_certificate_Date = close_certificate_Date.AddMonths(6); //добавляем справку command.CommandText = $"INSERT INTO certificate_issuance_journal VALUES({id_certificate}, 1, \'{loc_pacient_card}\', {doc_id}, \'{DateTime.Now.Year}-{DateTime.Now.Month}-{DateTime.Now.Day}\', " + $"\'{close_certificate_Date.Year}-{close_certificate_Date.Month}-{close_certificate_Date.Day}\')"; MessageBox.Show(command.CommandText); command.ExecuteNonQuery(); MessageBox.Show("Прием пациента завершен!"); } CanEndWisiting = false; AllDoctorPersonalCabinet adpc = new AllDoctorPersonalCabinet(user_login); this.Close(); adpc.Show(); } break; // 401/у case 1: if (CanEndWisiting) { //Создаем объект документа Word.Document doc = null; try { //Получаем массив байтов из нашего файла byte[] textByteArray = File.ReadAllBytes(@"" + AppDomain.CurrentDomain.BaseDirectory + "\\401у.docx"); //Пересоздаем нужный нам файл Random rng = new Random(); string file_name = @"spravki\" + "doctor" + rng.Next(Int32.MinValue, Int32.MaxValue) + ".docx"; File.WriteAllBytes(file_name, textByteArray); // Создаём объект приложения Word.Application app = new Word.Application(); //Путь до шаблона документа string source = @"" + AppDomain.CurrentDomain.BaseDirectory + "\\" + file_name; //Открываем doc = app.Documents.Open(source); doc.Activate(); //Добавляем информацию //WBookmarks содержит все закладки Word.Bookmarks wBookmarks = doc.Bookmarks; Word.Range wRange; int i = 0; // string[] data = new string[3] { DateTime.Now.ToLongDateString(), FIO_doctor, FIO_pacient }; foreach (Word.Bookmark mark in wBookmarks) { wRange = mark.Range; wRange.Text = data[i]; i++; } doc.Close(); doc = null; Process.Start("" + AppDomain.CurrentDomain.BaseDirectory + file_name); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } using (MySqlConnection connection = new MySqlConnection(conn)) { connection.Open(); MySqlCommand command; command = new MySqlCommand($"INSERT INTO journal_wisiting VALUES({local_id_journal},\"{new TextRange(symptomsRichTextBox.Document.ContentStart, symptomsRichTextBox.Document.ContentEnd).Text}\"" + $", \"{diagnosis_TextBox.Text}\", \"{new TextRange(HealingRichTextBox.Document.ContentStart, HealingRichTextBox.Document.ContentEnd).Text}\")", connection); command.ExecuteNonQuery(); //Добавить информацию о справке //Макс id справки command.CommandText = "SELECT MAX(id_references) FROM certificate_issuance_journal"; int id_certificate = 0; if (command.ExecuteScalar() == DBNull.Value) { id_certificate = 1; } else { id_certificate = Convert.ToInt32(command.ExecuteScalar()) + 1; } //поиск id доктора MySqlCommand doctor_id = new MySqlCommand($"SELECT id_doctor FROM doctors WHERE login=\'{user_login}\'", connection); int doc_id = Convert.ToInt32(doctor_id.ExecuteScalar()); //дата закрытия справки DateTime close_certificate_Date = DateTime.Now; close_certificate_Date = close_certificate_Date.AddMonths(6); //добавляем справку command.CommandText = $"INSERT INTO certificate_issuance_journal VALUES({id_certificate}, 2, \'{loc_pacient_card}\', {doc_id}, \'{DateTime.Now.Year}-{DateTime.Now.Month}-{DateTime.Now.Day}\', " + $"\'{close_certificate_Date.Year}-{close_certificate_Date.Month}-{close_certificate_Date.Day}\')"; command.ExecuteNonQuery(); MessageBox.Show("Прием пациента завершен!"); } CanEndWisiting = false; AllDoctorPersonalCabinet adpc = new AllDoctorPersonalCabinet(user_login); this.Close(); adpc.Show(); } break; default: MessageBox.Show("Справка не была создана.\n Не выбран тип справки"); break; } } //если true if (CanEndWisiting) { using (MySqlConnection connection = new MySqlConnection(conn)) { connection.Open(); MySqlCommand command; command = new MySqlCommand($"INSERT INTO journal_wisiting VALUES({local_id_journal},\"{new TextRange(symptomsRichTextBox.Document.ContentStart, symptomsRichTextBox.Document.ContentEnd).Text}\"" + $", \"{diagnosis_TextBox.Text}\", \"{new TextRange(HealingRichTextBox.Document.ContentStart, HealingRichTextBox.Document.ContentEnd).Text}\")", connection); command.ExecuteNonQuery(); MessageBox.Show("Прием пациента завершен!"); } AllDoctorPersonalCabinet adpc = new AllDoctorPersonalCabinet(user_login); this.Close(); adpc.Show(); } }