regadm.xaml.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.Data.Entity.Validation;
  5. using System.Data.SqlClient;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows;
  10. using System.Windows.Controls;
  11. using System.Windows.Data;
  12. using System.Windows.Documents;
  13. using System.Windows.Input;
  14. using System.Windows.Media;
  15. using System.Windows.Media.Imaging;
  16. using System.Windows.Shapes;
  17. namespace veloprokat2
  18. {
  19. /// <summary>
  20. /// Логика взаимодействия для regadm.xaml
  21. /// </summary>
  22. public partial class regadm : Window
  23. {
  24. List<string> Alphabetrus = new List<string> {
  25. "А", "а", "Б", "б", "В", "в", "Г", "г", "Д", "д", "Е", "е", "Ё", "ё", "Ж", "ж", "З", "з", "И", "и", "Й", "й",
  26. "К", "к", "Л", "л", "М", "м", "Н", "н", "О", "о", "П", "п", "Р", "р", "С", "с", "Т", "т", "У", "у", "Ф", "ф",
  27. "Х", "х", "Ц", "ц", "Ч", "ч", "Ш", "ш", "Щ", "щ", "Ъ", "ъ", "Ы", "ы", "Ь", "ь", "Э", "э", "Ю", "ю", "Я", "я" };
  28. List<string> Date = new List<string> {
  29. "0","1","2","3","4","5","6","7","8","9","."};
  30. List<string> NumberPhone = new List<string> {
  31. "0","1","2","3","4","5","6","7","8","9"};
  32. public regadm()
  33. {
  34. InitializeComponent();
  35. }
  36. private void Otmena(object sender, RoutedEventArgs e)
  37. {
  38. MainWindowAdm MWA = new MainWindowAdm();
  39. MWA.Show();
  40. Close();
  41. }
  42. public DataTable Insert(string selectSQL) // функция подключения к базе данных и обработка запросов
  43. {
  44. DataTable dataTable = new DataTable("dataBase"); // создаём таблицу в приложении
  45. // подключаемся к базе данных
  46. SqlConnection sqlConnection = new SqlConnection("server=mssql;Trusted_Connection=Yes;DataBase=gr692_kaa;");
  47. sqlConnection.Open(); // открываем базу данных
  48. SqlCommand sqlCommand = sqlConnection.CreateCommand(); // создаём команду
  49. sqlCommand.CommandText = selectSQL; // присваиваем команде текст
  50. SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCommand); // создаём обработчик
  51. sqlDataAdapter.Fill(dataTable); // возращаем таблицу с результатом
  52. return dataTable;
  53. }
  54. private void Registraciya(object sender, RoutedEventArgs e)
  55. {
  56. if (Id.Text != "" && Login.Text != "" && Pass.Password != "" && Pass2.Password != "" && Lname.Text != "" && Fname.Text != "" && Mname.Text != "" && Email.Text != "" && Phone.Text != "" && Dr.Text != "")
  57. {
  58. bool id = false, fam = false, imya = false, otch = false, data = false, num = false;
  59. bool email = false, login = false, pas1 = false, pas2 = false;
  60. for (int i = 0; i < Id.Text.Length; i++)
  61. {
  62. if(id)
  63. {
  64. id = false;
  65. }
  66. for(int j = 0; j < NumberPhone.Count; j++)
  67. {
  68. if(Convert.ToString(Id.Text[i]).Contains(NumberPhone[j]))
  69. {
  70. id = true;
  71. break;
  72. }
  73. }
  74. if(id == false)
  75. {
  76. MessageBox.Show("Поле № администратора должно иметь только цифры");
  77. break;
  78. }
  79. }
  80. for (int i = 0; i < Login.Text.Length; i++)//проверка логина
  81. {
  82. if (login)
  83. {
  84. login = false;
  85. }
  86. if (Login.Text[i] >= 'A' && Login.Text[i] <= 'Z' || Login.Text[i] >= 'a' && Login.Text[i] <= 'z')
  87. {
  88. login = true;
  89. break;
  90. }
  91. if (login == false)
  92. {
  93. MessageBox.Show("Поле логин должно содержать только английские символы");
  94. break;
  95. }
  96. }
  97. for (int i = 0; i < Pass.Password.Length; i++)//проверка пароля(англ символы)
  98. {
  99. if (pas1)
  100. {
  101. pas1 = false;
  102. }
  103. if (Pass.Password[i] >= 'a' && Pass.Password[i] <= 'z' || Pass.Password[i] >= 'A' && Pass.Password[i] <= 'Z' || Pass.Password[i] >= '0' && Pass.Password[i] <= '9')
  104. {
  105. pas1 = true;
  106. break;
  107. }
  108. if (pas1 == false)
  109. {
  110. MessageBox.Show("Поле пароль должно содержать только английские символы и цифры");
  111. break;
  112. }
  113. }
  114. for (int i = 0; i < Pass2.Password.Length; i++)//проверка подтверждения пароля
  115. {
  116. if (pas2)
  117. {
  118. pas2 = false;
  119. }
  120. if (Pass2.Password[i] == Pass2.Password[i])
  121. {
  122. pas2 = true;
  123. break;
  124. }
  125. if (pas2 == false)
  126. {
  127. MessageBox.Show("Пароль не совпадает или вы не ввели его");
  128. break;
  129. }
  130. }
  131. for (int i = 0; i < Lname.Text.Length; i++)//проверка фамилии
  132. {
  133. if (fam)
  134. {
  135. fam = false;
  136. }
  137. for (int j = 0; j < Alphabetrus.Count; j++)
  138. {
  139. if (Convert.ToString(Lname.Text[i]).Contains(Alphabetrus[j]))
  140. {
  141. fam = true;
  142. break;
  143. }
  144. }
  145. if (fam == false)
  146. {
  147. MessageBox.Show("Поле фамилия должно содержать только русские символы");
  148. break;
  149. }
  150. }
  151. for (int i = 0; i < Fname.Text.Length; i++)//проверка имени
  152. {
  153. if (imya)
  154. {
  155. imya = false;
  156. }
  157. for (int j = 0; j < Alphabetrus.Count; j++)
  158. {
  159. if (Convert.ToString(Fname.Text[i]).Contains(Alphabetrus[j]))
  160. {
  161. imya = true;
  162. break;
  163. }
  164. }
  165. if (imya == false)
  166. {
  167. MessageBox.Show("Поле имя должно содержать только русские символы");
  168. break;
  169. }
  170. }
  171. for (int i = 0; i < Mname.Text.Length; i++)//проверка отчества
  172. {
  173. if (otch)
  174. {
  175. otch = false;
  176. }
  177. for (int j = 0; j < Alphabetrus.Count; j++)
  178. {
  179. if (Convert.ToString(Mname.Text[i]).Contains(Alphabetrus[j]))
  180. {
  181. otch = true;
  182. break;
  183. }
  184. }
  185. if (otch == false)
  186. {
  187. MessageBox.Show("Поле отчество должно содержать только русские символы");
  188. break;
  189. }
  190. }
  191. for (int i = 0; i < Email.Text.Length; i++)//проверка почту
  192. {
  193. if (email)
  194. {
  195. email = false;
  196. }
  197. if (Email.Text[i] >= 'A' && Email.Text[i] <= 'Z' || Email.Text[i] >= 'a' && Email.Text[i] <= 'z' || Email.Text.Contains("@") || Email.Text.Contains("."))
  198. {
  199. email = true;
  200. break;
  201. }
  202. if (email == false)
  203. {
  204. MessageBox.Show("Поле электронная почта должно содержать только английские символы и знаки '@' и '.'");
  205. break;
  206. }
  207. }
  208. for (int i = 0; i < Phone.Text.Length; i++)//проверка номера телефона
  209. {
  210. if (num)
  211. {
  212. num = false;
  213. }
  214. for (int j = 0; j < NumberPhone.Count; j++)
  215. {
  216. if (Convert.ToString(Phone.Text[i]).Contains(NumberPhone[j]))
  217. {
  218. num = true;
  219. break;
  220. }
  221. }
  222. if (num == false)
  223. {
  224. MessageBox.Show("Поле номер телефона должно содержать только цифры (без знака + и 11 цифр)");
  225. break;
  226. }
  227. }
  228. for (int i = 0; i < Dr.Text.Length; i++)//проверка даты рождения
  229. {
  230. if (data)
  231. {
  232. data = false;
  233. }
  234. for (int j = 0; j < Date.Count; j++)
  235. {
  236. if (Convert.ToString(Dr.Text[i]).Contains(Date[j]))
  237. {
  238. data = true;
  239. break;
  240. }
  241. }
  242. if (data == false)
  243. {
  244. MessageBox.Show("Поле дата рождения должно содержать только цифры и знак '.''");
  245. break;
  246. }
  247. }
  248. if (id && fam && imya && otch && data && num && email && login && pas1 && pas2)
  249. {
  250. DataTable InfoAdm = Insert("insert into [dbo].[InfoAdm] values " +
  251. "('" + Id.Text + "," + Login.Text + "','" + Pass.Password + "','" + Lname.Text +
  252. "','" + Fname.Text + "','" + Mname.Text + "','" + Email.Text +
  253. "','" + Phone.Text + "','" + Dr.Text + "')");
  254. MessageBox.Show("Пользователь зарегистирован");
  255. MainWindowAdm MWA = new MainWindowAdm();
  256. MWA.Show();
  257. Close();
  258. }
  259. else { MessageBox.Show("Неправильный формат"); }
  260. }
  261. else { MessageBox.Show("Все строки должны быть заполнены"); }
  262. }
  263. }
  264. }