private void GoLK_Click(object sender, RoutedEventArgs e)
        {
            AllDoctorPersonalCabinet ad = new AllDoctorPersonalCabinet(user_login);

            this.Close();
            ad.Show();
        }
Beispiel #2
0
        //Обработка нажатия на кнопку авторизации
        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();
            }
        }