regadm.xaml.cs 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348
  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. VeloprokatEntities db;
  33. public regadm()
  34. {
  35. InitializeComponent();
  36. db = new VeloprokatEntities();
  37. }
  38. private void Otmena(object sender, RoutedEventArgs e)
  39. {
  40. MainWindowAdm MWA = new MainWindowAdm();
  41. MWA.Show();
  42. Close();
  43. }
  44. public DataTable Insert(string selectSQL) // функция подключения к базе данных и обработка запросов
  45. {
  46. DataTable dataTable = new DataTable("dataBase"); // создаём таблицу в приложении
  47. // подключаемся к базе данных
  48. SqlConnection sqlConnection = new SqlConnection("server=DESKTOP-9UG7OCA;Trusted_Connection=Yes;DataBase=Veloprokat;");
  49. sqlConnection.Open(); // открываем базу данных
  50. SqlCommand sqlCommand = sqlConnection.CreateCommand(); // создаём команду
  51. sqlCommand.CommandText = selectSQL; // присваиваем команде текст
  52. SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCommand); // создаём обработчик
  53. sqlDataAdapter.Fill(dataTable); // возращаем таблицу с результатом
  54. return dataTable;
  55. }
  56. private void Registraciya(object sender, RoutedEventArgs e)
  57. {
  58. if (Login.Text != "" && Pass.Password != "" && Pass2.Password != "" && Lname.Text != "" && Fname.Text != "" && Mname.Text != "" && Email.Text != "" && Phone.Text != "" && Dr.Text != "")
  59. {
  60. bool fam = false, imya = false, otch = false, data = false, num = false;
  61. bool email = false, login = false, pas1 = false, pas2 = false;
  62. for (int i = 0; i < Login.Text.Length; i++)//проверка логина
  63. {
  64. if (login)
  65. {
  66. login = false;
  67. }
  68. if (Login.Text[i] >= 'A' && Login.Text[i] <= 'Z' || Login.Text[i] >= 'a' && Login.Text[i] <= 'z')
  69. {
  70. login = true;
  71. break;
  72. }
  73. if (login == false)
  74. {
  75. MessageBox.Show("Поле логин должно содержать только английские символы");
  76. break;
  77. }
  78. }
  79. for (int i = 0; i < Pass.Password.Length; i++)//проверка пароля(англ символы)
  80. {
  81. if (pas1)
  82. {
  83. pas1 = false;
  84. }
  85. 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')
  86. {
  87. pas1 = true;
  88. break;
  89. }
  90. if (pas1 == false)
  91. {
  92. MessageBox.Show("Поле пароль должно содержать только английские символы и цифры");
  93. break;
  94. }
  95. }
  96. for (int i = 0; i < Pass2.Password.Length; i++)//проверка подтверждения пароля
  97. {
  98. if (pas2)
  99. {
  100. pas2 = false;
  101. }
  102. if (Pass2.Password[i] == Pass2.Password[i])
  103. {
  104. pas2 = true;
  105. break;
  106. }
  107. if (pas2 == false)
  108. {
  109. MessageBox.Show("Пароль не совпадает или вы не ввели его");
  110. break;
  111. }
  112. }
  113. for (int i = 0; i < Lname.Text.Length; i++)//проверка фамилии
  114. {
  115. if (fam)
  116. {
  117. fam = false;
  118. }
  119. for (int j = 0; j < Alphabetrus.Count; j++)
  120. {
  121. if (Convert.ToString(Lname.Text[i]).Contains(Alphabetrus[j]))
  122. {
  123. fam = true;
  124. break;
  125. }
  126. }
  127. if (fam == false)
  128. {
  129. MessageBox.Show("Поле фамилия должно содержать только русские символы");
  130. break;
  131. }
  132. }
  133. for (int i = 0; i < Fname.Text.Length; i++)//проверка имени
  134. {
  135. if (imya)
  136. {
  137. imya = false;
  138. }
  139. for (int j = 0; j < Alphabetrus.Count; j++)
  140. {
  141. if (Convert.ToString(Fname.Text[i]).Contains(Alphabetrus[j]))
  142. {
  143. imya = true;
  144. break;
  145. }
  146. }
  147. if (imya == false)
  148. {
  149. MessageBox.Show("Поле имя должно содержать только русские символы");
  150. break;
  151. }
  152. }
  153. for (int i = 0; i < Mname.Text.Length; i++)//проверка отчества
  154. {
  155. if (otch)
  156. {
  157. otch = false;
  158. }
  159. for (int j = 0; j < Alphabetrus.Count; j++)
  160. {
  161. if (Convert.ToString(Mname.Text[i]).Contains(Alphabetrus[j]))
  162. {
  163. otch = true;
  164. break;
  165. }
  166. }
  167. if (otch == false)
  168. {
  169. MessageBox.Show("Поле отчество должно содержать только русские символы");
  170. break;
  171. }
  172. }
  173. for (int i = 0; i < Email.Text.Length; i++)//проверка почту
  174. {
  175. if (email)
  176. {
  177. email = false;
  178. }
  179. if (Email.Text[i] >= 'A' && Email.Text[i] <= 'Z' || Email.Text[i] >= 'a' && Email.Text[i] <= 'z' || Email.Text.Contains("@") || Email.Text.Contains("."))
  180. {
  181. email = true;
  182. break;
  183. }
  184. if (email == false)
  185. {
  186. MessageBox.Show("Поле электронная почта должно содержать только английские символы и знаки '@' и '.'");
  187. break;
  188. }
  189. }
  190. for (int i = 0; i < Phone.Text.Length; i++)//проверка номера телефона
  191. {
  192. if (num)
  193. {
  194. num = false;
  195. }
  196. for (int j = 0; j < NumberPhone.Count; j++)
  197. {
  198. if (Convert.ToString(Phone.Text[i]).Contains(NumberPhone[j]))
  199. {
  200. num = true;
  201. break;
  202. }
  203. }
  204. if (num == false)
  205. {
  206. MessageBox.Show("Поле номер телефона должно содержать только цифры (без знака + и 11 цифр)");
  207. break;
  208. }
  209. }
  210. for (int i = 0; i < Dr.Text.Length; i++)//проверка даты рождения
  211. {
  212. if (data)
  213. {
  214. data = false;
  215. }
  216. for (int j = 0; j < Date.Count; j++)
  217. {
  218. if (Convert.ToString(Dr.Text[i]).Contains(Date[j]))
  219. {
  220. data = true;
  221. break;
  222. }
  223. }
  224. if (data == false)
  225. {
  226. MessageBox.Show("Поле дата рождения должно содержать только цифры и знак '.''");
  227. break;
  228. }
  229. }
  230. if (fam && imya && otch && data && num && email && login && pas1 && pas2)
  231. {
  232. DataTable InfoAdm = Insert("insert into [dbo].[InfoAdm] values " +
  233. "('" + Login.Text + "','" + Pass.Password + "','" + Fname.Text +
  234. "','" + Lname.Text + "','" + Mname.Text + "','" + Email.Text +
  235. "','" + Phone.Text + "','" + Dr.Text + "')");
  236. MessageBox.Show("Пользователь зарегистирован");
  237. MainWindowAdm MWA = new MainWindowAdm();
  238. MWA.Show();
  239. Close();
  240. }
  241. else { MessageBox.Show("Неправильный формат"); }
  242. }
  243. else { MessageBox.Show("Все строки должны быть заполнены"); }
  244. }
  245. /*string login = Login.Text.Trim();
  246. string pass = Pass.Password.Trim();
  247. string pass2 = Pass2.Password.Trim();
  248. string fname = Fname.Text.Trim();
  249. string lname = Lname.Text.Trim();
  250. string mname = Mname.Text.Trim();
  251. string dr = Dr.Text.Trim();
  252. string email = Email.Text.ToLower().Trim();
  253. string phone = Phone.Text.Trim();
  254. InfoAdm newInfoAdm = new InfoAdm()
  255. {
  256. Login = Login.Text,
  257. Password = Pass.Password,
  258. LName = Lname.Text,
  259. FName = Fname.Text,
  260. MName = Mname.Text,
  261. Dr = Dr.SelectedDate,
  262. Email = Email.Text,
  263. Phone = Phone.Text
  264. };
  265. int count = 0;
  266. if (login.Length < 5)
  267. {
  268. Login.ToolTip = "Логин не должен быть меньше 5-ти символов";
  269. Login.Background = Brushes.DarkRed;
  270. count += 1;
  271. }
  272. else if (pass.Length < 5)
  273. {
  274. Pass.ToolTip = "Пароль не должен быть меньше 5-ти символов";
  275. Pass.Background = Brushes.DarkRed;
  276. count += 1;
  277. }
  278. else if (pass != pass2)
  279. {
  280. Pass2.ToolTip = "Пароль не должен быть меньше 5-ти символов";
  281. Pass2.Background = Brushes.DarkRed;
  282. count += 1;
  283. }
  284. else if (lname.Length < 2)
  285. {
  286. Pass.ToolTip = "Фамилия не должна быть меньше 2-х символов";
  287. Pass.Background = Brushes.DarkRed;
  288. count += 1;
  289. }
  290. else if (fname.Length < 2)
  291. {
  292. Pass.ToolTip = "Имя не должно быть меньше 2-х символов";
  293. Pass.Background = Brushes.DarkRed;
  294. count += 1;
  295. }
  296. else if(mname.Length < 5)
  297. {
  298. Pass.ToolTip = "Отчество не должно быть меньше 5-ти символов";
  299. Pass.Background = Brushes.DarkRed;
  300. count += 1;
  301. }
  302. else if(Dr.Text.Length==0)
  303. {
  304. Dr.ToolTip = "Дата введена не коректно";
  305. Dr.Background = Brushes.Gray;
  306. count += 1;
  307. }
  308. else if (email.Length < 5 || !email.Contains("@") || !email.Contains("."))
  309. {
  310. Email.ToolTip = "Пароль не должен быть меньше 5-ти символов";
  311. Email.Background = Brushes.DarkRed;
  312. count += 1;
  313. }
  314. else if(phone.Length <= 10)
  315. {
  316. Pass.ToolTip = "Номер телефона не должнен быть меньше 11-ти символов";
  317. Pass.Background = Brushes.DarkRed;
  318. count += 1;
  319. }
  320. else if (db.InfoRab.Select(item => item.Login).Contains(Login.Text))
  321. {
  322. MessageBox.Show("Такой логин уже существует в системе");
  323. count += 1;
  324. }
  325. if (count > 10 && count < 0)
  326. {
  327. MessageBox.Show("Заполните данные коректно");
  328. count = 0;
  329. }
  330. else if (count < 0)
  331. {
  332. db.InfoAdm.Add(newInfoAdm);
  333. db.SaveChanges();
  334. MessageBox.Show("Вы успешно зарегестрировались");
  335. Auth au = new Auth();
  336. au.Show();
  337. Close();
  338. }*/
  339. }
  340. }