| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- using System;
- using System.Text.RegularExpressions;
- using System.Windows.Forms;
- namespace WindowsFormsApp4
- {
- public partial class RegisterForm : Form
- {
- public RegisterForm()
- {
- InitializeComponent();
- AttachEventHandlers();
- }
- private void AttachEventHandlers()
- {
- btnRegister.Click += BtnRegister_Click;
- btnBack.Click += BtnBack_Click;
- }
- private bool ValidateFields()
- {
- if (string.IsNullOrWhiteSpace(txtLastName.Text))
- {
- MessageBox.Show("Введите фамилию", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- txtLastName.Focus();
- return false;
- }
- if (string.IsNullOrWhiteSpace(txtFirstName.Text))
- {
- MessageBox.Show("Введите имя", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- txtFirstName.Focus();
- return false;
- }
- string phone = txtPhone.Text.Trim();
- if (string.IsNullOrWhiteSpace(phone))
- {
- MessageBox.Show("Введите номер телефона", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- txtPhone.Focus();
- return false;
- }
- Regex phoneRegex = new Regex(@"^(\+7|8)[0-9]{10}$");
- if (!phoneRegex.IsMatch(phone))
- {
- MessageBox.Show("Некорректный номер телефона. Формат: +7XXXXXXXXXX или 8XXXXXXXXXX",
- "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- txtPhone.Focus();
- return false;
- }
- if (string.IsNullOrWhiteSpace(txtLogin.Text))
- {
- MessageBox.Show("Введите логин", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- txtLogin.Focus();
- return false;
- }
- if (txtLogin.Text.Length < 3)
- {
- MessageBox.Show("Логин должен содержать не менее 3 символов",
- "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- txtLogin.Focus();
- return false;
- }
- if (string.IsNullOrWhiteSpace(txtPassword.Text))
- {
- MessageBox.Show("Введите пароль", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- txtPassword.Focus();
- return false;
- }
- if (txtPassword.Text.Length < 6)
- {
- MessageBox.Show("Пароль должен содержать не менее 6 символов",
- "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- txtPassword.Focus();
- return false;
- }
- if (txtPassword.Text != txtConfirmPassword.Text)
- {
- MessageBox.Show("Пароли не совпадают", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- txtConfirmPassword.Focus();
- return false;
- }
- return true;
- }
- private void BtnRegister_Click(object sender, EventArgs e)
- {
- if (!ValidateFields())
- return;
- if (DatabaseHelper.LoginExists(txtLogin.Text.Trim()))
- {
- MessageBox.Show("Пользователь с таким логином уже существует",
- "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- txtLogin.Focus();
- return;
- }
- if (DatabaseHelper.PhoneExists(txtPhone.Text.Trim()))
- {
- MessageBox.Show("Пользователь с таким номером телефона уже зарегистрирован",
- "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- txtPhone.Focus();
- return;
- }
- int newClientId = DatabaseHelper.RegisterClient(
- txtLastName.Text.Trim(),
- txtFirstName.Text.Trim(),
- string.IsNullOrWhiteSpace(txtMiddleName.Text) ? null : txtMiddleName.Text.Trim(),
- txtPhone.Text.Trim()
- );
- if (newClientId > 0)
- {
- int newUserId = DatabaseHelper.CreateUser(
- txtLastName.Text.Trim(),
- txtFirstName.Text.Trim(),
- string.IsNullOrWhiteSpace(txtMiddleName.Text) ? null : txtMiddleName.Text.Trim(),
- txtPhone.Text.Trim(),
- "client",
- newClientId,
- null
- );
- if (newUserId > 0)
- {
- bool authCreated = DatabaseHelper.CreateUserAuth(
- newUserId,
- txtLogin.Text.Trim(),
- txtPassword.Text.Trim()
- );
- if (authCreated)
- {
- MessageBox.Show("Регистрация прошла успешно! Теперь вы можете войти в систему.",
- "Успешно", MessageBoxButtons.OK, MessageBoxIcon.Information);
- StartForm startForm = new StartForm();
- startForm.Show();
- this.Close();
- }
- else
- {
- MessageBox.Show("Ошибка при создании учётной записи",
- "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
- else
- {
- MessageBox.Show("Ошибка при создании пользователя",
- "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
- else
- {
- MessageBox.Show("Ошибка при регистрации клиента",
- "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
- private void BtnBack_Click(object sender, EventArgs e)
- {
- StartForm startForm = new StartForm();
- startForm.Show();
- this.Close();
- }
- }
- }
|