InvokeMe() public static method

public static InvokeMe ( Control ctrl, MethodInvoker mInvoke ) : void
ctrl System.Windows.Forms.Control
mInvoke MethodInvoker
return void
Example #1
0
        private void newRandomPassword(String user, int length)
        {
            if (Globals.Connected)
            {
                String password = createPassword(length);

                Utilities.runInThread(() =>
                {
                    DB changePassDB = Utilities.AsyncDB();
                    changePassDB.bind(new string[] { "usern", user, "pass1", Utilities.MD5Hash(password) });

                    int qreg = changePassDB.nQuery("UPDATE users SET pass=@pass1 where user=@usern");

                    if (qreg > 0)
                    {
                        Utilities.notifyThem(ntfForgot, "Successfully Generated", NotificationBox.Type.Success);
                        Utilities.InvokeMe(txtPassPassword, () =>
                        {
                            txtPassPassword.Text = password;
                        });
                    }
                    else
                    {
                        Utilities.notifyThem(ntfForgot, "Failed to Generate", NotificationBox.Type.Error);
                    }
                }).Start();
            }
        }
Example #2
0
 private void btnconnect_Click(object sender, EventArgs e)
 {
     Utilities.runInThread(() => {
         Globals.ConnectionStr(txtSHost.Text, txtSUser.Text, txtSPass.Text, txtSDatabase.Text);
         if (Utilities.AsyncDB().Connected())
         {
             Globals.Connected = true;
         }
         else
         {
             Globals.Connected = false;
         }
         if (Globals.Connected)
         {
             if (checkBoxRemember.Checked)
             {
                 Settings.save("StoredSettings", checkBoxRemember.Checked.ToString(), checkBoxAutoConnect.Checked.ToString(), txtSHost.Text, txtSUser.Text, txtSPass.Text, txtSDatabase.Text);
             }
             else
             {
                 Settings.delete("StoredSettings");
             }
             Utilities.InvokeMe(btnconnect, () =>
             {
                 btnconnect.Text = "Reconnect";
             });
             Utilities.notifyThem(ntfBox3, "Successfully Connected", NotificationBox.Type.Success);
         }
         else
         {
             Utilities.notifyThem(ntfBox3, "Could not connect to the Database", NotificationBox.Type.Error);
         }
     }).Start();
 }
Example #3
0
        private void frmEdit_Load(object sender, EventArgs e)
        {
            autocompleteMenu1.Items = Globals.colTags.ToArray();

            string questtags = "";

            txtAddQ.Text = _quest.question;
            Utilities.runInThread(() => {
                DB TempDB    = Utilities.AsyncDB(true);
                DataTable dt = new DataTable();
                dt           = TempDB.query("select nametag from tags where qid='" + _quest.id + "'");
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    if (i == dt.Rows.Count - 1)
                    {
                        questtags += dt.Rows[i][0].ToString();
                    }
                    else
                    {
                        questtags += dt.Rows[i][0].ToString() + ",";
                    }
                }

                Utilities.InvokeMe(txtAddTags, () =>
                {
                    txtAddTags.Text = "" + questtags;
                });
            }).Start();
            for (int k = 0; k < _quest.anwsers.Count; k++)
            {
                dgvAnswerlist.Rows.Add(_quest.anwsers[k].text.ToString(), _quest.anwsers[k].correct);
            }
        }
Example #4
0
        public static void RefreshMyQuestions()
        {
            Label        lblRegQ = (Label)Utilities.FindControl(Globals.formMain, "lblRegQ");
            Label        pnumQ   = (Label)Utilities.FindControl(Globals.formMain, "pnumQ");
            DataGridView dgvMyQ  = (DataGridView)Utilities.FindControl(Globals.formMain, "dgvMyQ");

            DataTable dt = Utilities.AsyncDB().query("SELECT * FROM questions WHERE uid=" + Globals.logUser.id);

            //set all columns to readonly
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                dt.Columns[i].ReadOnly = true;
            }

            if (dt.Rows.Count > 0)
            {
                Utilities.InvokeMe(lblRegQ, () =>
                {
                    lblRegQ.Visible = false;
                });
                Utilities.InvokeMe(dgvMyQ, () =>
                {
                    dgvMyQ.DataSource            = dt;
                    dgvMyQ.Columns[0].Visible    = true;
                    dgvMyQ.Columns[0].HeaderText = "Select";
                    dgvMyQ.Columns[0].Width      = 50;
                    dgvMyQ.Columns[1].Visible    = false;
                    dgvMyQ.Columns[2].HeaderText = "Questions";
                    dgvMyQ.Columns[2].SortMode   = DataGridViewColumnSortMode.NotSortable;
                    dgvMyQ.Columns[2].Width      = 420;
                    dgvMyQ.Columns[3].Visible    = false;
                    dgvMyQ.Columns[4].Visible    = false;
                    dgvMyQ.Columns[5].HeaderText = "Private";
                    dgvMyQ.Columns[5].Width      = 80;
                    dgvMyQ.Columns[6].Visible    = false;
                    for (int i = 0; i < dgvMyQ.Rows.Count; i++)
                    {
                        dgvMyQ.Rows[i].Cells[0].Value = "False";
                    }
                });
            }
            else
            {
                Utilities.InvokeMe(lblRegQ, () =>
                {
                    lblRegQ.Visible = true;
                });

                Utilities.InvokeMe(dgvMyQ, () =>
                {
                    dgvMyQ.Columns[0].Visible = false;
                });
            }
            Utilities.InvokeMe(pnumQ, () =>
            {
                pnumQ.Text = dgvMyQ.Rows.Count.ToString();
            });
        }
Example #5
0
        private void btnAdd_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtAddQ.Text.Trim()) == true || string.IsNullOrEmpty(txtAddTags.Text.Trim()) == true || (dgvAnswerlist.Rows.Count < 1))
            {
                Utilities.notifyThem(ntfAdd, "You must fill some info about your question first", NotificationBox.Type.Error);
            }
            else
            {
                List <Answer> Answers = new List <Answer>();
                for (int i = 0; i < dgvAnswerlist.Rows.Count; i++)
                {
                    Answers.Add(new Answer(dgvAnswerlist.Rows[i].Cells[0].Value.ToString().TrimEnd().TrimStart(), bool.Parse(dgvAnswerlist.Rows[i].Cells[1].Value.ToString())));
                }
                Utilities.runInThread(() =>
                {
                    DB TempDB = Utilities.AsyncDB(true);
                    TempDB.bind(new string[] { "Question", txtAddQ.Text.TrimEnd().TrimStart(), "Answers", JsonConvert.SerializeObject(Answers).ToString(), "Dlevel", difficultyLvl.Value.ToString(), "Prive", (switchPrivate.isOn ? 1 : 0).ToString(), "UID", Globals.logUser.id.ToString() });
                    string qid = TempDB.single("INSERT INTO questions (question, answers, dlevel, prive, uid) VALUES (@Question, @Answers, @Dlevel, @Prive, @UID); select last_insert_id();");

                    int qAddTag   = 0;
                    string[] tags = txtAddTags.Text.TrimEnd(',').Split(',');
                    foreach (string tag in tags)
                    {
                        if (!string.IsNullOrEmpty(tag))
                        {
                            TempDB.bind(new string[] { "TAG", tag.ToLower(), "QID", qid });
                            qAddTag += TempDB.nQuery("INSERT INTO tags (nametag, qid) VALUES (@TAG, @QID)");
                        }
                    }

                    if (string.IsNullOrEmpty(qid) == false && qAddTag > 0)
                    {
                        Utilities.notifyThem(ntfAdd, "Successfull Added Question !", NotificationBox.Type.Success);
                        Functionality.RefreshMyQuestions();
                        Utilities.clearText(txtAddQ, txtAddTags, txtAnswer);
                        Utilities.InvokeMe(dgvAnswerlist, () =>
                        {
                            dgvAnswerlist.Rows.Clear();
                            dgvAnswerlist.Refresh();
                        });
                        Utilities.InvokeMe(difficultyLvl, () =>
                        {
                            difficultyLvl.Value = 1;
                        });
                        Utilities.InvokeMe(switchPrivate, () =>
                        {
                            switchPrivate.isOn = false;
                        });
                        Utilities.InvokeMe(switchCorrectAnswer, () =>
                        {
                            switchCorrectAnswer.isOn = true;
                        });

                        Functionality.LoadTags(autocompleteMenu1);
                    }
                }).Start();
            }
        }
Example #6
0
        private void btnLogin_Click(object sender, EventArgs e)
        {
            if (Globals.Connected)
            {
                txtLUser.Text = txtLUser.Text.Trim();
                if (string.IsNullOrEmpty(txtLUser.Text) || string.IsNullOrEmpty(txtLPass.Text))
                {
                    Utilities.notifyThem(ntfBox1, "Empty username or password!", NotificationBox.Type.Warning);
                }
                else
                {
                    Utilities.runInThread(() => {
                        String HashPass = Utilities.MD5Hash(txtLPass.Text);

                        DB TempLogUser = Utilities.AsyncDB();
                        TempLogUser.bind(new string[] { "user", txtLUser.Text, "pass", HashPass });
                        DataTable dt = TempLogUser.query("select * from users where user = @user and pass = @pass");
                        if (dt.Rows.Count == 1)
                        {
                            if (ckbLRemember.Checked)
                            {
                                Settings.save("StoredAccount", ckbLRemember.Checked.ToString(), txtLUser.Text, txtLPass.Text);
                            }
                            else
                            {
                                Settings.delete("StoredAccount");
                            }

                            //Load Tags
                            Functionality.LoadTags();

                            int id          = int.Parse(dt.Rows[0][0].ToString());
                            string user     = dt.Rows[0][1].ToString();
                            string pass     = dt.Rows[0][2].ToString();
                            string mail     = dt.Rows[0][3].ToString();
                            string scode    = dt.Rows[0][4].ToString();
                            Globals.logUser = new User(id, user, pass, mail, scode);

                            Utilities.InvokeMe(this, () =>
                            {
                                ntfBox1.Visible = false;
                                this.Hide();
                                Globals.formMain.Show();
                            });
                        }
                        else
                        {
                            Utilities.notifyThem(ntfBox1, "Username or Password were incorrect", NotificationBox.Type.Error);
                        }
                    }).Start();
                }
            }
            else
            {
                Utilities.notifyThem(ntfBox1, "Not connected to DB!", NotificationBox.Type.Warning);
            }
        }
Example #7
0
        private void btnSearch_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtTags.Text))
            {
                Utilities.notifyThem(ntbfindQ, "You must add some tags first", NotificationBox.Type.Error);
            }
            else
            {
                Utilities.runInThread(() =>
                {
                    DB TempDB       = Utilities.AsyncDB(true);
                    string[] tags   = txtTags.Text.TrimEnd(',').Split(',');
                    string conQuery = "";
                    for (int i = 0; i < tags.Length; i++)
                    {
                        conQuery += "@" + i + ",";
                    }

                    string fromall = "";
                    if (switchFindAll.isOn)
                    {
                        fromall = "(prive = 0 and uid != " + Globals.logUser.id + ") or ";
                    }

                    DataTable dt = new DataTable();

                    TempDB.qBind(tags);
                    if (!switchAllTags.isOn)
                    {
                        dt = TempDB.query("select * from questions where (" + fromall + "uid = " + Globals.logUser.id + ") and dlevel >= " + numericMin.Value + " and dlevel <= " + numericMax.Value + " and id in(select distinct qid from tags where nametag in (" + conQuery.TrimEnd(',') + "));");
                    }
                    else
                    {
                        dt = TempDB.query("SELECT * FROM  `questions` WHERE (" + fromall + "uid = " + Globals.logUser.id + ") and dlevel >= " + numericMin.Value + " and dlevel <= " + numericMax.Value + " and id IN (SELECT qid FROM  `tags` WHERE nametag IN (SELECT nametag FROM tags WHERE nametag IN (" + conQuery.TrimEnd(',') + ")) GROUP BY qid HAVING COUNT( qid ) = " + tags.Length + ")");
                    }

                    for (int i = 0; i < dt.Columns.Count; i++)
                    {
                        dt.Columns[i].ReadOnly = true;
                    }

                    Utilities.InvokeMe(dgvFoundQ, () =>
                    {
                        dgvFoundQ.DataSource            = dt;
                        dgvFoundQ.Columns[0].Visible    = true;
                        dgvFoundQ.Columns[0].Width      = 50;
                        dgvFoundQ.Columns[1].Visible    = false;
                        dgvFoundQ.Columns[2].HeaderText = "Questions";
                        dgvFoundQ.Columns[2].SortMode   = DataGridViewColumnSortMode.NotSortable;
                        dgvFoundQ.Columns[2].Width      = 390;
                        dgvFoundQ.Columns[3].Visible    = false;
                        dgvFoundQ.Columns[4].HeaderText = "Difficulty";
                        dgvFoundQ.Columns[4].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                        dgvFoundQ.Columns[4].SortMode = DataGridViewColumnSortMode.NotSortable;
                        dgvFoundQ.Columns[4].Width    = 80;
                        dgvFoundQ.Columns[5].Visible  = false;
                        dgvFoundQ.Columns[6].Visible  = false;
                        for (int i = 0; i < dgvFoundQ.Rows.Count; i++)
                        {
                            dgvFoundQ.Rows[i].Cells[0].Value = "False";
                        }
                    });

                    if (dt.Rows.Count < 1)
                    {
                        DataTable da = new DataTable();
                        Utilities.InvokeMe(dgvFoundQ, () =>
                        {
                            dgvFoundQ.DataSource         = da;
                            dgvFoundQ.Columns[0].Visible = false;
                        });
                    }

                    Utilities.notifyThem(ntbfindQ, "Found " + dt.Rows.Count + " Questions", NotificationBox.Type.Notice);
                }).Start();
            }
        }