Exemple #1
0
        void rptQDetail_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item ||
                e.Item.ItemType == ListItemType.AlternatingItem)
            {
                Repeater rptAnswer     = e.Item.FindControl("rptAnswer") as Repeater;
                Repeater rptUserAnswer = e.Item.FindControl("rptUserAnswer") as Repeater;

                QuestionUserDetail qud = e.Item.DataItem as QuestionUserDetail;
                if (rptAnswer != null && qud.Question != null)
                {
                    rptAnswer.DataSource = qud.Question.Answerses;
                    rptAnswer.DataBind();
                }

                if (rptUserAnswer != null && qud.Question != null)
                {
                    if (qud.Question.Answerses != null)
                    {
                        foreach (Answer ans in qud.Question.Answerses)
                        {
                            if (ans.Id == qud.Answer.Id)
                            {
                                ans.IsUserAnswer = true;
                                break;
                            }
                        }
                    }

                    rptUserAnswer.DataSource     = qud.Question.Answerses;
                    rptUserAnswer.ItemDataBound += new RepeaterItemEventHandler(rptUserAnswer_ItemDataBound);
                    rptUserAnswer.DataBind();
                }
            }
        }
        private void SavePlayGame(out int rightAnswer, out int bonusPoint)
        {
            bonusPoint  = 0;
            rightAnswer = 0;

            User curenttUser = Utils.GetCurrentUser();

            curenttUser = DomainManager.GetObject <User>(curenttUser.Id);
            if (curenttUser != null)
            {
                int          time = 0;
                QuestionUser qu   = new QuestionUser();
                qu.PlayDate = DateTime.Now;
                qu.User     = curenttUser;
                qu.Time     = time;

                string       key2  = hfCache.Value;
                QuestionGame qgame = CMSCache.Get(key2) as QuestionGame;
                if (qgame != null)
                {
                    qu.QuestionGame = qgame;

                    foreach (Question p in qgame.Questionses.Cast <Question>())
                    {
                        Answer   userAnswer = GetUserAnswer(p);
                        Question question   = DomainManager.GetObject <Question>(p.Id);

                        if (userAnswer != null)
                        {
                            QuestionUserDetail detail = new QuestionUserDetail();
                            detail.QuestionUser = qu;
                            detail.Question     = question;
                            detail.Answer       = userAnswer;
                            qu.QuestionUserDetailses.Add(detail);
                        }

                        if (question != null && question.CorrectAnswer != null &&
                            userAnswer != null && question.CorrectAnswer.Id == userAnswer.Id)
                        {
                            bonusPoint += question.BonusPoint;
                            rightAnswer++;
                        }
                    }
                }


                TimeSpan?onsiteTime = null;
                if (Page.Session[TNHelper.QuestionStarTimeKey] is DateTime)
                {
                    onsiteTime = DateTime.Now - (DateTime)Page.Session[TNHelper.QuestionStarTimeKey];
                    qu.Time    = onsiteTime.Value.Seconds;
                }

                qu.WinPoint = bonusPoint;
                if (qu.QuestionGame != null)
                {
                    DomainManager.Insert(qu);

                    curenttUser.PointQuestion += bonusPoint; // cộng vào tổng điểm của game trả lời câu hỏi
                    curenttUser.Point         += bonusPoint; // cộng điểm thưởng vào tổng điểm của game cá cược

                    DomainManager.Insert(curenttUser);
                    Utils.ResetCurrentUser();
                    if (bonusPoint == 0)
                    {
                        TNHelper.LogAction(LogType.QuestionLog, "Chơi game thử tài kiến thức");
                    }
                    else
                    {
                        TNHelper.LogAction(LogType.QuestionLog, string.Format("Cộng {0} điểm thưởng vào tổng điểm game thử tài kiến thức.<br/>Cộng {0} điểm thưởng vào tổng điểm game phân tích trận đấu", bonusPoint));
                    }
                }
                // remove all relate cache
                CMSCache.RemoveByPattern(hfCache.Value);
            }
        }