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); } }