using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Formats.Asn1;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
//using CsvReadWrite;
using System.Data.SqlClient;
using System.Security.Cryptography;
using System.Drawing.Imaging;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
using PackingControlSystem.lib;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel;

namespace PackingControlSystem
{
    public partial class frmNGManual : Form
    {
        private List<List<string>> Settings = new List<List<string>>();
        DataTable dtUserSelect = new DataTable();
        private string serial = string.Empty;
        bool isClose = false;
        public frmNGManual(string serial)
        {
            InitializeComponent();
            this.serial = serial;
            lblWarning.Text = "ต้องการเปลี่ยน OK เป็น NG ที่ Serial : " + this.serial;
            frmPacking.strMSG = "NG: ต้องการเปลี่ยน OK เป็น NG ที่ Serial : " + this.serial;
            frmReportOK.strMSG = "NG: ต้องการเปลี่ยน OK เป็น NG ที่ Serial : " + this.serial;

        }

        public string RtnDbCon()
        {
            return "Data Source=" + this.Settings[0][0] + ";Initial Catalog=" + this.Settings[0][1] + ";User Id=sa;Password=" + this.Settings[0][2] + ";";

        }

        private void frmNG_Load(object sender, EventArgs e)
        {
            lblPermission.Text = "QA";

            List<string> tmp = null;
            Settings = new List<List<string>>();
            tmp = null;
            using (var csv = new CsvReader(System.IO.Directory.GetCurrentDirectory() + "\\Settings.csv"))
            {
                while ((tmp = csv.ReadRow()) != null)
                {
                    Settings.Add(tmp);

                }

            }//using end

            SettxtStart();


        }

        private void SettxtStart()
        {
            isClose = false;
            frmPacking.strUserQC = string.Empty;
            frmReportOK.strUserQC = string.Empty;
            txtUserID.Text = string.Empty;
            txtPassword.Text = string.Empty;
            txtUserID.Focus();
        }

        private void btnUnlock_Click(object sender, EventArgs e)
        {


        }

        private void btnOK_Click(object sender, EventArgs e)
        {
            dtUserSelect = new DataTable();
            string strPassword = string.Empty;
            string strPermission = string.Empty;

            if (txtUserID.Text.Trim() == string.Empty || txtPassword.Text.Trim() == string.Empty)
            {
                //MessageBox.Show(this, "เปลี่ยน Status ไม่ถูกต้อง กรุณาเปลี่ยน Status อีกครั้ง",
                //                      "ERROR", MessageBoxButtons.OK,
                //                      MessageBoxIcon.Error,
                //                      MessageBoxDefaultButton.Button1, 0);
                MessageBox.Show(this, "ใส่ UserID ไม่ถูกต้อง กรุณใส่ UserID ใหม่อีกครั้ง",
                                           "ERROR", MessageBoxButtons.OK,
                                           MessageBoxIcon.Error,
                                           MessageBoxDefaultButton.Button1, 0);

                SettxtStart();

                return;
            }

            clsUtil_MSSQL.GetDataFromTBUserSelect(RtnDbCon(), "TM_USER", ref dtUserSelect, txtUserID.Text.Trim());
            if (dtUserSelect is not null)
            {
                if (dtUserSelect.Rows.Count > 0)
                {
                    strPassword = dtUserSelect.Rows[0][3].ToString();
                    strPermission = dtUserSelect.Rows[0][4].ToString();
                    //if ((strPassword != null) && (strPassword == txtPassword.Text)
                    //    && ((strPermission == "LEADER")
                    //    || (strPermission == "ADMINISTRATOR")))
                    if ((strPassword != null) && (strPassword == txtPassword.Text)
                    && (strPermission == "QA"))
                    {
                        frmPacking.blChangeOKtoNG = true;
                        frmReportOK.blChangeOKtoNG = true;
                        frmPacking.strUserQC = txtUserID.Text.Trim();
                        frmReportOK.strUserQC = txtUserID.Text.Trim();

                        isClose = true;
                        this.Close();
                    }
                    else
                    {
                        //MessageBox.Show(this, "เปลี่ยน Status ไม่ถูกต้อง กรุณาเปลี่ยน Status อีกครั้ง",
                        //                   "ERROR", MessageBoxButtons.OK,
                        //                   MessageBoxIcon.Error,
                        //                   MessageBoxDefaultButton.Button1, 0);
                        MessageBox.Show(this, "ใส่ UserID ไม่ถูกต้อง กรุณใส่ UserID ใหม่อีกครั้ง",
                                           "ERROR", MessageBoxButtons.OK,
                                           MessageBoxIcon.Error,
                                           MessageBoxDefaultButton.Button1, 0);

                        SettxtStart();
                    }
                }
                else
                {
                    //MessageBox.Show(this, "เปลี่ยน Status ไม่ถูกต้อง กรุณาเปลี่ยน Status อีกครั้ง",
                    //                   "ERROR", MessageBoxButtons.OK,
                    //                   MessageBoxIcon.Error,
                    //                   MessageBoxDefaultButton.Button1, 0);
                    MessageBox.Show(this, "ใส่ UserID ไม่ถูกต้อง กรุณใส่ UserID ใหม่อีกครั้ง",
                                           "ERROR", MessageBoxButtons.OK,
                                           MessageBoxIcon.Error,
                                           MessageBoxDefaultButton.Button1, 0);

                    SettxtStart();
                }

            }
            else
            {
                //MessageBox.Show(this, "เปลี่ยน Status ไม่ถูกต้อง กรุณาเปลี่ยน Status อีกครั้ง",
                //                       "ERROR", MessageBoxButtons.OK,
                //                       MessageBoxIcon.Error,
                //                       MessageBoxDefaultButton.Button1, 0);
                MessageBox.Show(this, "ใส่ UserID ไม่ถูกต้อง กรุณใส่ UserID ใหม่อีกครั้ง",
                                           "ERROR", MessageBoxButtons.OK,
                                           MessageBoxIcon.Error,
                                           MessageBoxDefaultButton.Button1, 0);

                SettxtStart();
            }
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            frmPacking.blChangeOKtoNG = false;
            frmReportOK.blChangeOKtoNG = false;
            isClose = true;
            this.Close();
        }

        private void frmNGManual_Load(object sender, EventArgs e)
        {
            lblPermission.Text = "QA";
            List<string> tmp = null;
            Settings = new List<List<string>>();
            tmp = null;
            using (var csv = new CsvReader(System.IO.Directory.GetCurrentDirectory() + "\\Settings.csv"))
            {
                while ((tmp = csv.ReadRow()) != null)
                {
                    Settings.Add(tmp);

                }

            }//using end
            frmPacking.strUserQC = string.Empty;
            frmReportOK.strUserQC = string.Empty;
        }

        private void txtPassword_TextChanged(object sender, EventArgs e)
        {

        }

        private void txtPassword_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == System.Windows.Forms.Keys.Return)
            {
                dtUserSelect = new DataTable();
                string strPassword = string.Empty;
                string strPermission = string.Empty;

                if (txtUserID.Text.Trim() == string.Empty || txtPassword.Text.Trim() == string.Empty)
                {
                    //MessageBox.Show(this, "เปลี่ยน Status ไม่ถูกต้อง กรุณาเปลี่ยน Status อีกครั้ง",
                    //                      "ERROR", MessageBoxButtons.OK,
                    //                      MessageBoxIcon.Error,
                    //                      MessageBoxDefaultButton.Button1, 0);
                    MessageBox.Show(this, "ใส่ UserID ไม่ถูกต้อง กรุณใส่ UserID ใหม่อีกครั้ง",
                                           "ERROR", MessageBoxButtons.OK,
                                           MessageBoxIcon.Error,
                                           MessageBoxDefaultButton.Button1, 0);

                    SettxtStart();

                    return;
                }

                clsUtil_MSSQL.GetDataFromTBUserSelect(RtnDbCon(), "TM_USER", ref dtUserSelect, txtUserID.Text.Trim());
                if (dtUserSelect is not null)
                {
                    if (dtUserSelect.Rows.Count > 0)
                    {
                        strPassword = dtUserSelect.Rows[0][3].ToString();
                        strPermission = dtUserSelect.Rows[0][4].ToString();
                        //if ((strPassword != null) && (strPassword == txtPassword.Text)
                        //    && ((strPermission == "LEADER")
                        //    || (strPermission == "ADMINISTRATOR")))
                        if ((strPassword != null) && (strPassword == txtPassword.Text)
                            && (strPermission == "QA"))
                        {
                            frmPacking.blChangeOKtoNG = true;
                            frmReportOK.blChangeOKtoNG = true;
                            frmPacking.strUserQC = txtUserID.Text.Trim();
                            frmReportOK.strUserQC = txtUserID.Text.Trim();
                            isClose = true;
                            this.Close();
                        }
                        else
                        {
                            //MessageBox.Show(this, "เปลี่ยน Status ไม่ถูกต้อง กรุณาเปลี่ยน Status อีกครั้ง",
                            //                   "ERROR", MessageBoxButtons.OK,
                            //                   MessageBoxIcon.Error,
                            //                   MessageBoxDefaultButton.Button1, 0);
                            MessageBox.Show(this, "ใส่ UserID ไม่ถูกต้อง กรุณใส่ UserID ใหม่อีกครั้ง",
                                           "ERROR", MessageBoxButtons.OK,
                                           MessageBoxIcon.Error,
                                           MessageBoxDefaultButton.Button1, 0);

                            SettxtStart();
                        }
                    }
                    else
                    {
                        //MessageBox.Show(this, "เปลี่ยน Status ไม่ถูกต้อง กรุณาเปลี่ยน Status อีกครั้ง",
                        //                   "ERROR", MessageBoxButtons.OK,
                        //                   MessageBoxIcon.Error,
                        //                   MessageBoxDefaultButton.Button1, 0);
                        MessageBox.Show(this, "ใส่ UserID ไม่ถูกต้อง กรุณใส่ UserID ใหม่อีกครั้ง",
                                           "ERROR", MessageBoxButtons.OK,
                                           MessageBoxIcon.Error,
                                           MessageBoxDefaultButton.Button1, 0);

                        SettxtStart();
                    }

                }
                else
                {
                    //MessageBox.Show(this, "เปลี่ยน Status ไม่ถูกต้อง กรุณาเปลี่ยน Status อีกครั้ง",
                    //                       "ERROR", MessageBoxButtons.OK,
                    //                       MessageBoxIcon.Error,
                    //                       MessageBoxDefaultButton.Button1, 0);
                    MessageBox.Show(this, "ใส่ UserID ไม่ถูกต้อง กรุณใส่ UserID ใหม่อีกครั้ง",
                                           "ERROR", MessageBoxButtons.OK,
                                           MessageBoxIcon.Error,
                                           MessageBoxDefaultButton.Button1, 0);

                    SettxtStart();
                }
            }
        }

        private void txtUserID_TextChanged(object sender, EventArgs e)
        {

        }

        private void txtUserID_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
        {
            if (e.KeyCode == System.Windows.Forms.Keys.Return)
            {
                dtUserSelect = new DataTable();
                string strPassword = string.Empty;
                string strPermission = string.Empty;

                if (txtUserID.Text.Trim() == string.Empty)
                {
                    //MessageBox.Show(this, "กรุณาใส่ชื่อเข้าระบบ",
                    //                       "ERROR", MessageBoxButtons.OK,
                    //                       MessageBoxIcon.Error,
                    //                       MessageBoxDefaultButton.Button1, 0);
                    MessageBox.Show(this, "ใส่ UserID ไม่ถูกต้อง กรุณใส่ UserID ใหม่อีกครั้ง",
                                           "ERROR", MessageBoxButtons.OK,
                                           MessageBoxIcon.Error,
                                           MessageBoxDefaultButton.Button1, 0);

                    SettxtStart();

                    return;
                }

                List<string> tmp;
                tmp = new List<string>();
                tmp = txtUserID.Text.Split("%").ToList();

                if (tmp.Count == 2)
                {
                    txtUserID.Text = tmp[0];
                    txtPassword.Text = tmp[1];
                }
                else if (tmp.Count == 1)
                {
                    txtPassword.Focus();
                    return;
                }
                else
                {
                    //MessageBox.Show(this, "เปลี่ยน Status ไม่ถูกต้อง กรุณาเปลี่ยน Status อีกครั้ง",
                    //                           "ERROR", MessageBoxButtons.OK,
                    //                           MessageBoxIcon.Error,
                    //                           MessageBoxDefaultButton.Button1, 0);
                    MessageBox.Show(this, "ใส่ UserID ไม่ถูกต้อง กรุณใส่ UserID ใหม่อีกครั้ง",
                                           "ERROR", MessageBoxButtons.OK,
                                           MessageBoxIcon.Error,
                                           MessageBoxDefaultButton.Button1, 0);

                    SettxtStart();
                    return;
                }

                if (txtPassword.Text.Trim() == string.Empty)
                {
                    //MessageBox.Show(this, "เปลี่ยน Status ไม่ถูกต้อง กรุณาเปลี่ยน Status อีกครั้ง",
                    //                       "ERROR", MessageBoxButtons.OK,
                    //                       MessageBoxIcon.Error,
                    //                       MessageBoxDefaultButton.Button1, 0);
                    MessageBox.Show(this, "ใส่ UserID ไม่ถูกต้อง กรุณใส่ UserID ใหม่อีกครั้ง",
                                           "ERROR", MessageBoxButtons.OK,
                                           MessageBoxIcon.Error,
                                           MessageBoxDefaultButton.Button1, 0);

                    SettxtStart();

                    return;
                }


                //if (txtUserID.Text.Trim() == string.Empty || txtPassword.Text.Trim() == string.Empty)
                //{
                //    MessageBox.Show(this, "เปลี่ยน Status ไม่ถูกต้อง กรุณาเปลี่ยน Status อีกครั้ง",
                //                          "ERROR", MessageBoxButtons.OK,
                //                          MessageBoxIcon.Error,
                //                          MessageBoxDefaultButton.Button1, 0);

                //    SettxtStart();

                //    return;
                //}

                clsUtil_MSSQL.GetDataFromTBUserSelect(RtnDbCon(), "TM_USER", ref dtUserSelect, txtUserID.Text.Trim());
                if (dtUserSelect is not null)
                {
                    if (dtUserSelect.Rows.Count > 0)
                    {
                        strPassword = dtUserSelect.Rows[0][3].ToString();
                        strPermission = dtUserSelect.Rows[0][4].ToString();
                        //if ((strPassword != null) && (strPassword == txtPassword.Text)
                        //    && ((strPermission == "LEADER")
                        //    || (strPermission == "ADMINISTRATOR")))
                        if ((strPassword != null) && (strPassword == txtPassword.Text)
                            && (strPermission == "QA"))
                        {
                            frmPacking.blChangeOKtoNG = true;
                            frmReportOK.blChangeOKtoNG = true;
                            frmPacking.strUserQC = txtUserID.Text.Trim();
                            frmReportOK.strUserQC = txtUserID.Text.Trim();
                            isClose = true;
                            this.Close();
                        }
                        else
                        {
                            MessageBox.Show(this, "เปลี่ยน Status ไม่ถูกต้อง กรุณาเปลี่ยน Status อีกครั้ง",
                                               "ERROR", MessageBoxButtons.OK,
                                               MessageBoxIcon.Error,
                                               MessageBoxDefaultButton.Button1, 0);

                            SettxtStart();
                        }
                    }
                    else
                    {
                        MessageBox.Show(this, "เปลี่ยน Status ไม่ถูกต้อง กรุณาเปลี่ยน Status อีกครั้ง",
                                           "ERROR", MessageBoxButtons.OK,
                                           MessageBoxIcon.Error,
                                           MessageBoxDefaultButton.Button1, 0);

                        SettxtStart();
                    }

                }
                else
                {
                    MessageBox.Show(this, "เปลี่ยน Status ไม่ถูกต้อง กรุณาเปลี่ยน Status อีกครั้ง",
                                           "ERROR", MessageBoxButtons.OK,
                                           MessageBoxIcon.Error,
                                           MessageBoxDefaultButton.Button1, 0);

                    SettxtStart();
                }
            }
        }

        private void frmNGManual_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (isClose == false)
            {
                e.Cancel = true;
            }
        }
    }
}
