using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using System.Windows.Controls;

namespace WPF01.pages
{
    /// <summary>
    /// Логика взаимодействия для Registration.xaml
    /// </summary>
    public partial class Registration : Page
    {
       
        public Registration()
        {
            InitializeComponent();
        }

        private void Page_Loaded(object sender, RoutedEventArgs e)
        {
            // SELECT * FROM Role
            List<db.Role> roles = db.Database.Context.Role.ToList();

            foreach (db.Role role in roles)
            {
                ComboBoxItem item = new ComboBoxItem();
                item.Content = role.Name;

                roleList.Items.Add(item);
            }
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            if (loginTextBox.Text.Length < 4 || loginTextBox.Text.Length > 10)
            {
                MessageBox.Show(
                    "Логин должен содержать от 4 до 10 символов",
                    "Предупреждение", 
                    MessageBoxButton.OK,
                    MessageBoxImage.Warning);
                return;
            }

            if (passwordBox.Password.Length < 4 || passwordBox.Password.Length > 10)
            {
                MessageBox.Show(
                    "Пароль должен содержать от 4 до 10 символов",
                    "Предупреждение",
                    MessageBoxButton.OK,
                    MessageBoxImage.Warning);
                return;
            }

            if (firstnameTextBox.Text.Length < 2 || lastnameTextBox.Text.Length < 2 || patronymicTextBox.Text.Length < 2)
            {
                MessageBox.Show(
                    "Необходимо заполнить ФИО полностью",
                    "Предупреждение",
                    MessageBoxButton.OK,
                    MessageBoxImage.Warning);
                return;
            }

            if (phoneTextBox.Text.Length != 10)
            {
                MessageBox.Show(
                    "Введите корректно номер телефона",
                    "Предупреждение",
                    MessageBoxButton.OK,
                    MessageBoxImage.Warning);
                return;
            }

            if (roleList.SelectedIndex == -1)
            {
                MessageBox.Show(
                    "Необходимо выбрать роль",
                    "Предупреждение",
                    MessageBoxButton.OK,
                    MessageBoxImage.Warning);
                return;
            }

            db.Manager man = new db.Manager();

            man.Login = loginTextBox.Text;
            man.Password = passwordBox.Password;
            man.FirstName = firstnameTextBox.Text;
            man.SecondName = lastnameTextBox.Text;
            man.Patronymic = patronymicTextBox.Text;
            man.Phone = phoneTextBox.Text;
            man.Role = ((ComboBoxItem)roleList.SelectedItem).Content.ToString();

            db.Database.Context.Manager.Add(man);

            try
            {
                int res = db.Database.Context.SaveChanges();
                

                MessageBox.Show(res.ToString());
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            
        }
    }
}
