using System;
using System.Collections.Generic;
using System.Data;
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 KursachMukha692gr
{
    /// <summary>
    /// Логика взаимодействия для AddTrener.xaml
    /// </summary>
    public partial class AddTrener : Window
    {
        List<string> Alphabetrus = new List<string> {
            "А", "а", "Б", "б", "В", "в", "Г", "г", "Д", "д", "Е", "е", "Ё", "ё", "Ж", "ж", "З", "з", "И", "и", "Й", "й",
            "К", "к", "Л", "л", "М", "м", "Н", "н", "О", "о", "П", "п", "Р", "р", "С", "с", "Т", "т", "У", "у", "Ф", "ф",
            "Х", "х", "Ц", "ц", "Ч", "ч", "Ш", "ш", "Щ", "щ", "Ъ", "ъ", "Ы", "ы", "Ь", "ь", "Э", "э", "Ю", "ю", "Я", "я" };
        List<string> Date = new List<string> {
            "0","1","2","3","4","5","6","7","8","9","."};
        public AddTrener()
        {
            InitializeComponent();
        }

        private void Button_Click_Add(object sender, RoutedEventArgs e)
        {
            if (familiyaTrener.Text != "" && imyaTrener.Text != "" && otchTrener.Text != "" && dataTrener.Text != "" && numberTrener.Text != "" && sportspec.Text != "" && pol_id.Text != "" && categoryTrener.Text!="")
            {
                bool fam = false, imya = false, otch = false, data = false, num = false;
                bool sport = false, pol = false,cat = false;
                for (int i = 0; i < familiyaTrener.Text.Length; i++)//проверка фамилии
                {
                    if (fam)
                    {
                        fam = false;
                    }
                    for (int j = 0; j < Alphabetrus.Count; j++)
                    {
                        if (Convert.ToString(familiyaTrener.Text[i]).Contains(Alphabetrus[j]))
                        {
                            fam = true;
                            break;
                        }
                    }
                    if (fam == false)
                    {
                        MessageBox.Show("Поле фамилия должно содержать только русские символы");
                        break;
                    }
                }
                for (int i = 0; i < imyaTrener.Text.Length; i++)//проверка имени
                {
                    if (imya)
                    {
                        imya = false;
                    }
                    for (int j = 0; j < Alphabetrus.Count; j++)
                    {
                        if (Convert.ToString(imyaTrener.Text[i]).Contains(Alphabetrus[j]))
                        {
                            imya = true;
                            break;
                        }
                    }
                    if (imya == false)
                    {
                        MessageBox.Show("Поле имя должно содержать только русские символы");
                        break;
                    }
                }
                for (int i = 0; i < otchTrener.Text.Length; i++)//проверка отчества
                {
                    if (otch)
                    {
                        otch = false;
                    }
                    for (int j = 0; j < Alphabetrus.Count; j++)
                    {
                        if (Convert.ToString(otchTrener.Text[i]).Contains(Alphabetrus[j]))
                        {
                            otch = true;
                            break;
                        }
                    }
                    if (otch == false)
                    {
                        MessageBox.Show("Поле отчество должно содержать только русские символы");
                        break;
                    }
                }
                for (int i = 0; i < dataTrener.Text.Length; i++)//проверка даты рождения
                {
                    if (data)
                    {
                        data = false;
                    }
                    for (int j = 0; j < Date.Count; j++)
                    {
                        if (Convert.ToString(dataTrener.Text[i]).Contains(Date[j]))
                        {
                            data = true;
                            break;
                        }
                    }
                    if (data == false)
                    {
                        MessageBox.Show("Поле дата рождения должно содержать только цифры и знак '.''");
                        break;
                    }
                }
                for (int i = 0; i < numberTrener.Text.Length; i++)//проверка номера телефона
                {
                    if (num)
                    {
                        num = false;
                    }
                    if (numberTrener.Text[i] >= '0' && numberTrener.Text[i] <= '9' && numberTrener.Text.Length == 11)
                    {
                        num = true;
                        break;
                    }
                    if (num == false)
                    {
                        MessageBox.Show("Поле номер телефона  должно содержать только цифры (без знака + и 11 цифр)");
                        break;
                    }
                }
                for (int i = 0; i < sportspec.Text.Length; i++)
                {
                    if (sport)
                    {
                        sport = false;
                    }
                    if (sportspec.Text[i] >='1' && sportspec.Text[i]<= '7' && sportspec.Text.Length == 1)
                    {
                        sport = true;
                        break;
                    }
                    if (sport == false)
                    {
                        MessageBox.Show("Поле спортивная специальность должно содержать id специальности (1-хоккей,2-Волейбол,3-Футбол,4-Баскетбол,5-Плавание,6-Мини-футбол,7-Бокс)");
                        break;
                    }
                }
                for (int i = 0; i < pol_id.Text.Length; i++)
                {
                    if (pol)
                    {
                        pol = false;
                    }
                    if (pol_id.Text[i] == '1' || pol_id.Text[i] == '2' && pol_id.Text.Length == 1)
                    {
                        pol = true;
                        break;
                    }
                    if (pol == false)
                    {
                        MessageBox.Show("Поле пол должно содержать только цифры 1 (мужской) и 2 (женский)");
                        break;
                    }
                }
                for (int i = 0; i < categoryTrener.Text.Length; i++)
                {
                    if (cat)
                    {
                        cat = false;
                    }
                    if (categoryTrener.Text[i] >= '1' && categoryTrener.Text[i] <= '9' || categoryTrener.Text[i] >= 'A' && categoryTrener.Text[i] <= 'Z')
                    {
                        cat = true;
                        break;
                    }
                    if (cat == false)
                    {
                        MessageBox.Show("Поле тренерская категория должно содержать только английские буквы и цифры");
                        break;
                    }
                }
                if (fam && imya && otch && data && num && sport && pol && cat)
                {
                    DataTable dt_infotrener = Insert("insert into [dbo].[infotrener] values " +
                                                            "('" + familiyaTrener.Text + "','" + imyaTrener.Text + "','" + otchTrener.Text +
                                                              "','" + dataTrener.Text + "','" + numberTrener.Text + "','" + sportspec.Text +
                                                              "','" + categoryTrener.Text + "','" + pol_id.Text + "')");
                    MessageBox.Show("Тренер добавлен");
                    SpisokTrenerov mainreg = new SpisokTrenerov();
                    mainreg.Show();
                    Close();
                }
                else { MessageBox.Show("Неправильный формат"); }
            }
            else { MessageBox.Show("Все строки должны быть заполнены"); }


        }
        public DataTable Insert(string selectSQL)
        {
            DataTable dataTable = new DataTable("dataBase");
            SqlConnection sqlConnection = new SqlConnection("server=WIN-2CL665KE0ED; Trusted_Connection=YES;DataBase=KURSACH1;");
            sqlConnection.Open();
            SqlCommand sqlCommand = sqlConnection.CreateCommand();
            sqlCommand.CommandText = selectSQL;
            SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCommand);
            sqlDataAdapter.Fill(dataTable);
            sqlConnection.Close();
            return dataTable;
        }
        private void Button_Click_Back(object sender, RoutedEventArgs e)
        {
            SpisokTrenerov trenerov = new SpisokTrenerov();
            trenerov.Show();
            Close();
        }
    }
}
