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 frmCancelKanban : Form
    {
        private List<List<string>> Settings = new List<List<string>>();
        DataTable dtUserSelect = new DataTable();
        private string serial = string.Empty;
        private string MsgKanban = string.Empty;
        bool isClose = false;
        private string permission = string.Empty;
        public frmCancelKanban(string serial, string MsgKanban, string permission)
        {
            InitializeComponent();
            this.MsgKanban = MsgKanban;
            this.serial = serial;
            this.permission = permission;
            lblKanban.Text = MsgKanban;
            lblWarning.Text = this.serial;
            //frmPacking.strMSG = "NG: Cancel Kanban : " + this.serial;
            frmPacking.strMSG = "NG: " + MsgKanban + " : " + 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 SettxtStart()
        {
            frmMain.blCancelKanban = false;
            frmReportOK.blDeleteKanban = false;
            frmPacking.blClearSerial = false;
            isClose = false;
            txtUserID.Text = string.Empty;
            txtPassword.Text = string.Empty;
            txtUserID.Focus();
        }


        private void frmCancelKanban_Load(object sender, EventArgs e)
        {
            lblKanban.Text = MsgKanban;
            lblPermission.Text = permission; // "ADMINISTRATOR";
            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
        }

        private void btnOK_Click_1(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, MsgKanban + " ไม่ถูกต้อง กรุณา " + MsgKanban + " อีกครั้ง",
                //                      "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 == "ADMINISTRATOR"))
                        && (strPermission == permission))
                    {
                        frmMain.blCancelKanban = true;
                        frmReportOK.blDeleteKanban = true;
                        frmPacking.blClearSerial = true;
                        isClose = true;
                        this.Close();
                    }
                    else
                    {
                        //MessageBox.Show(this, MsgKanban + " ไม่ถูกต้อง กรุณา " + MsgKanban + " อีกครั้ง",
                        //                                   "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, MsgKanban + " ไม่ถูกต้อง กรุณา " + MsgKanban + " อีกครั้ง",
                    //                   "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, MsgKanban + " ไม่ถูกต้อง กรุณา " + MsgKanban + " อีกครั้ง",
                //               "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_1(object sender, EventArgs e)
        {
            frmMain.blCancelKanban = false;
            frmReportOK.blDeleteKanban = false;
            frmPacking.blClearSerial = false;
            isClose = true;
            this.Close();
        }

        private void txtPassword_TextChanged_1(object sender, EventArgs e)
        {

        }

        private void txtPassword_KeyDown_1(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, MsgKanban + " ไม่ถูกต้อง กรุณา " + MsgKanban + " อีกครั้ง",
                    //                              "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 == "ADMINISTRATOR"))
                            && (strPermission == permission))
                        {
                            frmMain.blCancelKanban = true;
                            frmReportOK.blDeleteKanban = true;
                            frmPacking.blClearSerial = true;
                            isClose = true;
                            this.Close();
                        }
                        else
                        {
                            //MessageBox.Show(this, MsgKanban + " ไม่ถูกต้อง กรุณา " + MsgKanban + " อีกครั้ง",
                            //                                       "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, MsgKanban + " ไม่ถูกต้อง กรุณา " + MsgKanban + " อีกครั้ง",
                        //                               "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, MsgKanban + " ไม่ถูกต้อง กรุณา " + MsgKanban + " อีกครั้ง",
                    //                           "ERROR", MessageBoxButtons.OK,
                    //                       MessageBoxIcon.Error,
                    //                       MessageBoxDefaultButton.Button1, 0);
                    MessageBox.Show(this, "ใส่ UserID ไม่ถูกต้อง กรุณใส่ UserID ใหม่อีกครั้ง",
                                           "ERROR", MessageBoxButtons.OK,
                                           MessageBoxIcon.Error,
                                           MessageBoxDefaultButton.Button1, 0);

                    SettxtStart();
                }
            }
        }

        private void txtPassword_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
        {

        }

        private void txtUserID_PreviewKeyDown_1(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, MsgKanban + " ไม่ถูกต้อง กรุณา " + MsgKanban + " อีกครั้ง",
                    //                               "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, MsgKanban + " ไม่ถูกต้อง กรุณา " + MsgKanban + " อีกครั้ง",
                    //                           "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 == "ADMINISTRATOR"))
                            && (strPermission == permission))
                        {
                            frmMain.blCancelKanban = true;
                            frmReportOK.blDeleteKanban = true;
                            frmPacking.blClearSerial = true;
                            isClose = true;
                            this.Close();
                        }
                        else
                        {
                            //MessageBox.Show(this, MsgKanban + " ไม่ถูกต้อง กรุณา " + MsgKanban + " อีกครั้ง",
                            //                                       "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, MsgKanban + " ไม่ถูกต้อง กรุณา " + MsgKanban + " อีกครั้ง",
                        //                               "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, MsgKanban + " ไม่ถูกต้อง กรุณา " + MsgKanban + " อีกครั้ง",
                    //                           "ERROR", MessageBoxButtons.OK,
                    //                       MessageBoxIcon.Error,
                    //                       MessageBoxDefaultButton.Button1, 0);
                    MessageBox.Show(this, "ใส่ UserID ไม่ถูกต้อง กรุณใส่ UserID ใหม่อีกครั้ง",
                                           "ERROR", MessageBoxButtons.OK,
                                           MessageBoxIcon.Error,
                                           MessageBoxDefaultButton.Button1, 0);

                    SettxtStart();
                }
            }
        }

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

        private void txtUserID_TextChanged(object sender, EventArgs e)
        {

        }
    }
}
