registrationForm.cs 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using System.Data.SqlClient;
  11. namespace hospital
  12. {
  13. public partial class registrationForm : Form
  14. {
  15. SqlConnection sqlConnection = null;
  16. SqlCommand a = null;
  17. public registrationForm()
  18. {
  19. InitializeComponent();
  20. }
  21. private void registrationForm_Load(object sender, EventArgs e)
  22. {
  23. FormCreating.openConnection(ref sqlConnection);
  24. SqlCommand a = new SqlCommand($"select name_gender from gender", sqlConnection);
  25. SqlDataReader reader = a.ExecuteReader();
  26. while (reader.Read())
  27. {
  28. genderCB.Items.Add(reader.GetString(0));
  29. }
  30. reader.Close();
  31. }
  32. private void registrationBTN_Click(object sender, EventArgs e)
  33. {
  34. try
  35. {
  36. bool checkTB = false, checkMTB = false;
  37. foreach (TextBox textBox in this.Controls.OfType<TextBox>())
  38. {
  39. if (String.IsNullOrEmpty(textBox.Text))
  40. {
  41. checkTB = true;
  42. break;
  43. }
  44. }
  45. foreach (MaskedTextBox maskedTextBox in this.Controls.OfType<MaskedTextBox>())
  46. {
  47. if (!maskedTextBox.MaskCompleted)
  48. {
  49. checkMTB = true;
  50. break;
  51. }
  52. }
  53. if(passwordTB.Text.Length < 5)
  54. {
  55. MessageBox.Show("Пароль слишком короткий! Он должен содержать минимум 5 символов", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
  56. }
  57. else
  58. {
  59. if(passwordTB.Text.Contains(" ") || loginTB.Text.Contains(" "))
  60. {
  61. MessageBox.Show("В пароле или логине присутствуют пробелы", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
  62. }
  63. else
  64. {
  65. if (!checkTB && !checkMTB)
  66. {
  67. a = new SqlCommand($"select count(*) from employees where login like '{loginTB.Text.GetHashCode()}'", sqlConnection);
  68. if (!a.ExecuteScalar().ToString().Equals("1"))
  69. {
  70. a = new SqlCommand($"select id_gender from gender where name_gender like N'{genderCB.SelectedItem}'", sqlConnection);
  71. string id_gender = a.ExecuteScalar().ToString();
  72. a = new SqlCommand($"insert into employees (surname_employee, name_employee, midname_employee, Date_Birthday_Employee, Telephone_Employee, Passport_Number_Employee, Passport_Date_Employee, Passport_Place_Employee, Passport_Code_Employee, [login], [password], id_gender) values (@surname_employee, @name_employee, @midname_employee, @Date_Birthday_Employee, @Telephone_Employee, @Passport_Number_Employee, @Passport_Date_Employee, @Passport_Place_Employee, @Passport_Code_Employee, @login, @password, @id_gender)", sqlConnection);
  73. DateTime date1 = DateTime.Parse(birthDateDTP.Text);
  74. DateTime date2 = DateTime.Parse(issueDateDTP.Text);
  75. a.Parameters.AddWithValue("surname_employee", surnameTB.Text);
  76. a.Parameters.AddWithValue("name_employee", nameTB.Text);
  77. a.Parameters.AddWithValue("midname_employee", midnameTB.Text);
  78. a.Parameters.AddWithValue("Date_Birthday_Employee", $"{date1.Day}/{date1.Month}/{date1.Year}");
  79. a.Parameters.AddWithValue("Telephone_Employee", telephoneMTB.Text);
  80. a.Parameters.AddWithValue("Passport_Number_Employee", seriesMTB.Text);
  81. a.Parameters.AddWithValue("Passport_Date_Employee", $"{date2.Day}/{date2.Month}/{date2.Year}");
  82. a.Parameters.AddWithValue("Passport_Place_Employee", issuedByTB.Text);
  83. a.Parameters.AddWithValue("Passport_Code_Employee", divisionCodeMTB.Text);
  84. a.Parameters.AddWithValue("login", loginTB.Text.GetHashCode());
  85. a.Parameters.AddWithValue("password", passwordTB.Text.GetHashCode());
  86. a.Parameters.AddWithValue("id_gender", id_gender);
  87. Array.Resize(ref auth.data, 12);
  88. auth.data[0] = $"Фамилия: {surnameTB.Text}";
  89. auth.data[1] = $"Имя: {nameTB.Text}";
  90. auth.data[2] = $"Отчество: {midnameTB.Text}";
  91. auth.data[3] = $"Дата рождения: {date1.Day}/{date1.Month}/{date1.Year}";
  92. auth.data[4] = $"Телефон: {telephoneMTB.Text}";
  93. auth.data[5] = $"Серия и номер паспорта: {seriesMTB.Text}";
  94. auth.data[6] = $"Дата выдачи паспорта: {date2.Day}/{date2.Month}/{date2.Year}";
  95. auth.data[7] = $"Кем выдан: {issuedByTB.Text}";
  96. auth.data[8] = $"Код подразделения: {divisionCodeMTB.Text}";
  97. auth.data[9] = $"Логин: {loginTB.Text}";
  98. auth.data[10] = $"Пароль: {passwordTB.Text}";
  99. auth.data[11] = $"Пол: {genderCB.SelectedItem}";
  100. if (a.ExecuteNonQuery() == 1)
  101. {
  102. MessageBox.Show("Регистрация прошла успешно!", "Уведомление", MessageBoxButtons.OK, MessageBoxIcon.Information);
  103. debugAndTrace.writeInFile("Регистрация", auth.data);
  104. debugAndTrace.writeInFile("Переход на форму авторизации");
  105. this.Close();
  106. }
  107. else
  108. {
  109. MessageBox.Show("Произошла ошибка", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
  110. debugAndTrace.writeInFile("Ошибка рагистрации", auth.data);
  111. }
  112. }
  113. else
  114. {
  115. MessageBox.Show("Такой пользователь уже зарегистрирован", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
  116. debugAndTrace.writeInFile("Error, такой пользователь уже зарегистрирован", auth.data);
  117. }
  118. }
  119. else
  120. {
  121. MessageBox.Show("Заполнены не все поля", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
  122. debugAndTrace.writeInFile("Error, заполнены не все поля");
  123. }
  124. }
  125. }
  126. }
  127. catch
  128. {
  129. MessageBox.Show("Произошла непредвиденная ошибка", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
  130. debugAndTrace.writeInFile("ERROR");
  131. }
  132. }
  133. private void backBTN_Click(object sender, EventArgs e)
  134. {
  135. var res = MessageBox.Show("Уверены, что хотите отменить регистрацию?", "Предупреждение", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
  136. if(res == DialogResult.Yes)
  137. {
  138. debugAndTrace.writeInFile("Отмена регистрации");
  139. this.Close();
  140. }
  141. else
  142. {
  143. MessageBox.Show("Действие отменено", "Уведомление", MessageBoxButtons.OK, MessageBoxIcon.Information);
  144. }
  145. }
  146. private void label6_Click(object sender, EventArgs e)
  147. {
  148. }
  149. private void issuedByTB_TextChanged(object sender, EventArgs e)
  150. {
  151. }
  152. }
  153. }