using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity.Validation;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace veloprokat2
{
///
/// Логика взаимодействия для regadm.xaml
///
public partial class regadm : Window
{
List Alphabetrus = new List {
"А", "а", "Б", "б", "В", "в", "Г", "г", "Д", "д", "Е", "е", "Ё", "ё", "Ж", "ж", "З", "з", "И", "и", "Й", "й",
"К", "к", "Л", "л", "М", "м", "Н", "н", "О", "о", "П", "п", "Р", "р", "С", "с", "Т", "т", "У", "у", "Ф", "ф",
"Х", "х", "Ц", "ц", "Ч", "ч", "Ш", "ш", "Щ", "щ", "Ъ", "ъ", "Ы", "ы", "Ь", "ь", "Э", "э", "Ю", "ю", "Я", "я" };
List Date = new List {
"0","1","2","3","4","5","6","7","8","9","."};
List NumberPhone = new List {
"0","1","2","3","4","5","6","7","8","9"};
public regadm()
{
InitializeComponent();
}
private void Otmena(object sender, RoutedEventArgs e)
{
MainWindowAdm MWA = new MainWindowAdm();
MWA.Show();
Close();
}
public DataTable Insert(string selectSQL) // функция подключения к базе данных и обработка запросов
{
DataTable dataTable = new DataTable("dataBase"); // создаём таблицу в приложении
// подключаемся к базе данных
SqlConnection sqlConnection = new SqlConnection("server=mssql;Trusted_Connection=Yes;DataBase=gr692_kaa;");
sqlConnection.Open(); // открываем базу данных
SqlCommand sqlCommand = sqlConnection.CreateCommand(); // создаём команду
sqlCommand.CommandText = selectSQL; // присваиваем команде текст
SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCommand); // создаём обработчик
sqlDataAdapter.Fill(dataTable); // возращаем таблицу с результатом
return dataTable;
}
private void Registraciya(object sender, RoutedEventArgs e)
{
if (Id.Text != "" && Login.Text != "" && Pass.Password != "" && Pass2.Password != "" && Lname.Text != "" && Fname.Text != "" && Mname.Text != "" && Email.Text != "" && Phone.Text != "" && Dr.Text != "")
{
bool id = false, fam = false, imya = false, otch = false, data = false, num = false;
bool email = false, login = false, pas1 = false, pas2 = false;
for (int i = 0; i < Id.Text.Length; i++)
{
if(id)
{
id = false;
}
for(int j = 0; j < NumberPhone.Count; j++)
{
if(Convert.ToString(Id.Text[i]).Contains(NumberPhone[j]))
{
id = true;
break;
}
}
if(id == false)
{
MessageBox.Show("Поле № администратора должно иметь только цифры");
break;
}
}
for (int i = 0; i < Login.Text.Length; i++)//проверка логина
{
if (login)
{
login = false;
}
if (Login.Text[i] >= 'A' && Login.Text[i] <= 'Z' || Login.Text[i] >= 'a' && Login.Text[i] <= 'z')
{
login = true;
break;
}
if (login == false)
{
MessageBox.Show("Поле логин должно содержать только английские символы");
break;
}
}
for (int i = 0; i < Pass.Password.Length; i++)//проверка пароля(англ символы)
{
if (pas1)
{
pas1 = false;
}
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')
{
pas1 = true;
break;
}
if (pas1 == false)
{
MessageBox.Show("Поле пароль должно содержать только английские символы и цифры");
break;
}
}
for (int i = 0; i < Pass2.Password.Length; i++)//проверка подтверждения пароля
{
if (pas2)
{
pas2 = false;
}
if (Pass2.Password[i] == Pass2.Password[i])
{
pas2 = true;
break;
}
if (pas2 == false)
{
MessageBox.Show("Пароль не совпадает или вы не ввели его");
break;
}
}
for (int i = 0; i < Lname.Text.Length; i++)//проверка фамилии
{
if (fam)
{
fam = false;
}
for (int j = 0; j < Alphabetrus.Count; j++)
{
if (Convert.ToString(Lname.Text[i]).Contains(Alphabetrus[j]))
{
fam = true;
break;
}
}
if (fam == false)
{
MessageBox.Show("Поле фамилия должно содержать только русские символы");
break;
}
}
for (int i = 0; i < Fname.Text.Length; i++)//проверка имени
{
if (imya)
{
imya = false;
}
for (int j = 0; j < Alphabetrus.Count; j++)
{
if (Convert.ToString(Fname.Text[i]).Contains(Alphabetrus[j]))
{
imya = true;
break;
}
}
if (imya == false)
{
MessageBox.Show("Поле имя должно содержать только русские символы");
break;
}
}
for (int i = 0; i < Mname.Text.Length; i++)//проверка отчества
{
if (otch)
{
otch = false;
}
for (int j = 0; j < Alphabetrus.Count; j++)
{
if (Convert.ToString(Mname.Text[i]).Contains(Alphabetrus[j]))
{
otch = true;
break;
}
}
if (otch == false)
{
MessageBox.Show("Поле отчество должно содержать только русские символы");
break;
}
}
for (int i = 0; i < Email.Text.Length; i++)//проверка почту
{
if (email)
{
email = false;
}
if (Email.Text[i] >= 'A' && Email.Text[i] <= 'Z' || Email.Text[i] >= 'a' && Email.Text[i] <= 'z' || Email.Text.Contains("@") || Email.Text.Contains("."))
{
email = true;
break;
}
if (email == false)
{
MessageBox.Show("Поле электронная почта должно содержать только английские символы и знаки '@' и '.'");
break;
}
}
for (int i = 0; i < Phone.Text.Length; i++)//проверка номера телефона
{
if (num)
{
num = false;
}
for (int j = 0; j < NumberPhone.Count; j++)
{
if (Convert.ToString(Phone.Text[i]).Contains(NumberPhone[j]))
{
num = true;
break;
}
}
if (num == false)
{
MessageBox.Show("Поле номер телефона должно содержать только цифры (без знака + и 11 цифр)");
break;
}
}
for (int i = 0; i < Dr.Text.Length; i++)//проверка даты рождения
{
if (data)
{
data = false;
}
for (int j = 0; j < Date.Count; j++)
{
if (Convert.ToString(Dr.Text[i]).Contains(Date[j]))
{
data = true;
break;
}
}
if (data == false)
{
MessageBox.Show("Поле дата рождения должно содержать только цифры и знак '.''");
break;
}
}
if (id && fam && imya && otch && data && num && email && login && pas1 && pas2)
{
DataTable InfoAdm = Insert("insert into [dbo].[InfoAdm] values " +
"('" + Id.Text + "," + Login.Text + "','" + Pass.Password + "','" + Lname.Text +
"','" + Fname.Text + "','" + Mname.Text + "','" + Email.Text +
"','" + Phone.Text + "','" + Dr.Text + "')");
MessageBox.Show("Пользователь зарегистирован");
MainWindowAdm MWA = new MainWindowAdm();
MWA.Show();
Close();
}
else { MessageBox.Show("Неправильный формат"); }
}
else { MessageBox.Show("Все строки должны быть заполнены"); }
}
}
}