using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Self_Project
{
    public partial class AddHesab : Form
    {
        public AddHesab()
        {
            InitializeComponent();
        }

        
        private void AddHesab_Load(object sender, EventArgs e)
        {
            //----------------------------------------------
            StudentType Model = new StudentType();
            Model.ShowModels(txt_Student_Type);
            //----------------------------------------------
        }

        private void btn_OK_Click(object sender, EventArgs e)
        {
            if (txt_Student_ID.TEXT == "" || txt_Cart_ID.TEXT == "" || txt_Student_Name.TEXT == "" || txt_Student_Family.TEXT == "")
            {
                MessageBox.Show("لطفا اطلاعات را کامل وارد نمایید", "اطلاعات ناقص", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                if (txt_Student_Family.TEXT == "") txt_Student_Family.Focus();
                if (txt_Student_Name.TEXT == "") txt_Student_Name.Focus();
                if (txt_Cart_ID.TEXT == "") txt_Cart_ID.Focus();
                if (txt_Student_ID.TEXT == "") txt_Student_ID.Focus();
                return;
            }
            //----------------------------------------------------------------
            Student Std = new Student();
            try
            {
                Std.ID = Convert.ToInt32(txt_Student_ID.TEXT);
                Std.CartID = Convert.ToInt32(txt_Cart_ID.TEXT);
                Std.Name = txt_Student_Name.TEXT;
                Std.Family = txt_Student_Family.TEXT;
                Std.Price = Convert.ToInt32(txt_Student_Price.TEXT);
                Std.Type = Convert.ToSByte(txt_Student_Type.SelectedValue);
            }
            //------------
            catch (Student_Exceptions_ID ex)
            {
                MessageBox.Show(ex.Message, "اطلاعات نادرست", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                txt_Student_ID.Focus();
                return;
            }
            //------------
            catch (Student_Exceptions_Name ex)
            {
                MessageBox.Show(ex.Message, "اطلاعات نادرست", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                txt_Student_Name.Focus();
                return;
            }
            //------------
            catch (Student_Exceptions_Family ex)
            {
                MessageBox.Show(ex.Message, "اطلاعات نادرست", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                txt_Student_Family.Focus();
                return;
            }
            //------------
            catch (Student_Exceptions_CartID ex)
            {
                MessageBox.Show(ex.Message, "اطلاعات نادرست", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                txt_Cart_ID.Focus();
                return;
            }
            //------------
            catch (Student_Exceptions_Price ex)
            {
                MessageBox.Show(ex.Message, "اطلاعات نادرست", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                txt_Student_Price.Focus();
                return;
            }
            //------------
            catch (Student_Exceptions_Type ex)
            {
                MessageBox.Show(ex.Message, "اطلاعات نادرست", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                txt_Student_Type.Focus();
                return;
            }
            //------------
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "اطلاعات نادرست", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                return;
            }
            //----------------------------------------------------------------
            if (Std.IsDuplicate(Student.ControlType.Student_ID))
            {
                MessageBox.Show("شماره دانشجویی وارد شده، تکراری است", "اطلاعات تکراری", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                txt_Student_ID.Focus();
                return;
            }
            //-----------------------------------------------------------------
            if (Std.IsDuplicate(Student.ControlType.Cart_ID))
            {
                MessageBox.Show("شماره کارت وارد شده، تکراری است", "اطلاعات تکراری", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                txt_Cart_ID.Focus();
                return;
            }
            //-----------------------------------------------------------------
            
            try
            {
                Std.CreateStudent();
                MessageBox.Show("اطلاعات با موفقیت ثبت شد", "ثبت اطلاعات", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "خطا در عملیات", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                return;
            }
            this.Close();
        }

        private void btn_Cancel_Click(object sender, EventArgs e)
        {
            this.Close();
        }

    }
}