Ejemplo n.º 1
0
        void CheckRezult(bool IsTest = false)
        {
            if (IsShow)
            {
                return;
            }

            timer.Stop();
            timer.Dispose();

            #region SendRezult

            if (!IsTest && !SendRezult && !IsShow)
            {
                using (var db = new DBWokrSql(ConnectString))
                {
                    foreach (UserControlQuestion item in StackPanelQuestion.Children)
                    {
                        foreach (var ans in item.GetUserAnswers())
                        {
                            db.AddRezult(Id_ticket, ans, item.IDquestion);
                        }
                    }

                    SendRezult = true;
                    #endregion

                    #region CheckRezult

                    int error           = 0,
                        countAnswerTrue = 0,
                        userCountAnser  = 0;

                    foreach (UserControlQuestion item in StackPanelQuestion.Children)
                    {
                        var answers = db.GetAnswers(item.IDquestion, true).Select(x => x.ID);

                        countAnswerTrue += answers.Count();

                        userCountAnser += item.GetUserAnswers().Count();

                        if (answers.Count() != item.GetUserAnswers().Count())
                        {
                            error++; continue;
                        }

                        foreach (var ans in item.GetUserAnswers())
                        {
                            if (!answers.Contains(ans))
                            {
                                error++; break;
                            }
                        }
                    }
                    //update Ticket column isPasses
                    if (error >= 3 || countAnswerTrue != userCountAnser)
                    {
                        MessageBox.Show("Ви не склали іспит");
                    }
                    else
                    {
                        MessageBox.Show("Вітаємо! Ви успішно склали іспит. Нам дуже приємно працювати з такими фахівцями як Ви.");
                    }

                    db.UpdateTicketRezult(Id_ticket, error < 3);
                    #endregion
                }
            }
        }