private bool Passed_Checkpoint()
        {
            try
            {
                if (string.IsNullOrEmpty(TxtName.Text) || string.IsNullOrWhiteSpace(TxtName.Text))
                {
                    return(false);
                }

                if (string.IsNullOrEmpty(TxtEmailAddress.Text) || string.IsNullOrWhiteSpace(TxtEmailAddress.Text))
                {
                    return(false);
                }
                else if (IsValidEmail(TxtEmailAddress.Text) == false)
                {
                    return(false);
                }

                if (CboEmailNotif.SelectedIndex == -1)
                {
                    return(false);
                }

                /// check if the PM's name is already taken
                Classes.MySQL A = new Classes.MySQL();
                A.stored_procedure_WithParams("ProjectManagers_Search");
                A.cmd.Parameters.AddWithValue("@PMNAME", TxtName.Text);
                A.rdr = A.cmd.ExecuteReader();
                if (A.rdr.Read())
                {
                    A.conn.Close(); A.conn.Dispose();
                    throw new Exception("Duplicate PM's name detected!");
                }
                A.conn.Close(); A.conn.Dispose();

                return(true);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "CSF TICKETING", MessageBoxButton.OK, MessageBoxImage.Error);
                return(false);
            }
        }
        private void BtnSave_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (Passed_Checkpoint() == true)
                {
                    string _Name = TxtName.Text, _Email = TxtEmailAddress.Text, _ADLogin = !string.IsNullOrEmpty(TxtADLogin.Text) ? TxtADLogin.Text : "", _EmailNotif = CboEmailNotif.Text;

                    if (MessageBox.Show("Add new Project Manager?", "CSF TICKETING", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
                    {
                        /// add new project manager record
                        Classes.MySQL A = new Classes.MySQL();
                        A.stored_procedure("ProjectManagers_Insert");
                        A.cmd.Parameters.AddWithValue("@PMNAME", _Name);
                        A.cmd.Parameters.AddWithValue("@EMAIL", _Email);
                        A.cmd.Parameters.AddWithValue("@ADLOGIN", _ADLogin);
                        A.cmd.Parameters.AddWithValue("@EMAILNOTIF", _EmailNotif);
                        A.rdr = A.cmd.ExecuteReader();
                        A.conn.Close(); A.conn.Dispose();

                        MessageBox.Show("New Project Manager Added!", "CSF TICKETING", MessageBoxButton.OK, MessageBoxImage.Information);

                        this.DialogResult           = true;
                        this.NewProjectManagersName = _Name;
                        this.Close();
                    }
                }
                else
                {
                    throw new Exception("Please check required fields!");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error : " + ex.Message, "CSF TICKETING", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
        }