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 ChangeUser : Form
    {
        public MainPage MP = new MainPage();
        string UserName = "";
        User U = new User();
        public ChangeUser()
        {
            InitializeComponent();
        }

        private void ChangeUser_Load(object sender, EventArgs e)
        { 
            U.ShowUsers(txt_AllUsers);
            if (txt_AllUsers.Items.Count == 0)
            {
                MessageBox.Show("تا کنون هیچ کاربری ایجاد نشده است", "کاربر سیستم", MessageBoxButtons.OK);
                Application.Exit();
            }
        }

        private void LoadInformations()
        {
            try
            {
                U.ShowInfo(txt_AllUsers.SelectedValue.ToString());
                U.LoadAccess(txt_AllUsers.SelectedValue.ToString());
                UserName = txt_UserName.TEXT = U.UserName;
                Pass2.TEXT = Pass1.TEXT = U.Password;
                chk_Student.Checked = U.Access_Student;
                chk_Food.Checked = U.Access_Food;
                chk_Vacation.Checked = U.Access_Vacation;
                chk_Reserve.Checked = U.Access_Reserve;
                chk_BackUP.Checked = U.Access_BackUP;
                chk_Users.Checked = U.Access_Users;
            }
            catch
            {
            }
        }

        
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            LoadInformations();
        }

        private void ChangeUser_Activated(object sender, EventArgs e)
        {
            LoadInformations();
        }

        private void btn_OK_Click(object sender, EventArgs e)
        {
            if (Pass1.TEXT != Pass2.TEXT)
            {
                MessageBox.Show("رمز عبور با هم منطبق نیست", "رمز عبور", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                Pass1.Focus();
                return;
            }
            //----------------------------------------------------------------
            try
            {
                U.UserName = txt_UserName.TEXT;
                U.Password = Pass1.TEXT;
                U.Access_Student = chk_Student.Checked;
                U.Access_Food = chk_Food.Checked;
                U.Access_Vacation = chk_Vacation.Checked;
                U.Access_Reserve = chk_Reserve.Checked;
                U.Access_BackUP = chk_BackUP.Checked;
                U.Access_Users = chk_Users.Checked;
            }
            catch (User_Exceptions_UserName ex)
            {
                MessageBox.Show(ex.Message, "اطلاعات نادرست", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                txt_UserName.Focus();
                return;
            }
            catch (User_Exceptions_Password ex)
            {
                MessageBox.Show(ex.Message, "اطلاعات نادرست", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                Pass1.Focus();
                return;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "اطلاعات نادرست", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                return;
            }
            //----------------------------------------------------------------
            if (txt_UserName.TEXT != UserName)
                if (U.IsDuplicate())
                {
                    MessageBox.Show("نام کاربری وارد شده، تکراری است ", "اطلاعات تکراری", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                    txt_UserName.Focus();
                    return;
                }
            //-----------------------------------------------------------------
            try
            {
                U.ChangeUserInfo(UserName);
                MessageBox.Show("اطلاعات کاربر مورد نظر، با موفقیت تغییر یافت", "کاربر سیستم", MessageBoxButtons.OK, MessageBoxIcon.Information);
                if (txt_AllUsers.Text == Functions.UserName)
                {
                    this.Hide();
                    Login FF = new Login();
                    MP.Hide();
                    FF.Show();
                }
                this.Close();
            }
            catch (User_Exceptions_NoManageUserRemine)
            {
                MessageBox.Show("امکان حذف خصوصیت 'مدیریت کاربران' این کاربر وجود ندارد\nزیرا با حذف این ویژگی، دیگر هیچ کاربری توانایی کار با اطلاعات دیگر کاربران را ندارد", "کاربر سیستم", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txt_AllUsers.Focus();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "خطا در عملیات", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                return;
            }
        }

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