public void UpdateCurrentState(ContextStateType state) { using (var db = new QuizWebAppDb()) { var context = db.Contexts.First(); context.CurrentState = state; // if change state to "3:show answer", judge to all players. if (state == ContextStateType.ShowCorrectAnswer) { var answers = db .Answers .Where(a => a.QuestionID == context.CurrentQuestionID) .ToList(); var currentQuestion = db.Questions.Find(context.CurrentQuestionID); answers .ForEach(a => a.Status = a.ChoosedOptionIndex == currentQuestion.IndexOfCorrectOption ? AnswerStateType.Correct : AnswerStateType.Incorrect); } db.SaveChanges(); } Clients.All.CurrentStateChanged(state.ToString()); }
public void PlayerSelectedOptionIndex(int answerIndex) { using (var db = new QuizWebAppDb()) { var playerId = Context.User.Identity.UserId(); var questionId = db.Contexts.First().CurrentQuestionID; var ansewer = db.Answers.First(a => a.PlayerID == playerId && a.QuestionID == questionId); ansewer.ChoosedOptionIndex = answerIndex; ansewer.Status = AnswerStateType.Pending;/*entried*/ db.SaveChanges(); } Clients.Others.PlayerSelectedOptionIndex(); }
public ActionResult SignOut() { if (this.User.Identity.IsAuthenticated) { using (var db = new QuizWebAppDb()) { var userInfo = db.Users.Find(this.User.Identity.UserId()); if (userInfo != null) { userInfo.AttendAsPlayerAt = null; db.SaveChanges(); } } FormsAuthentication.SignOut(); } return(Json(new { url = this.Url.Content("~/") })); }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); RouteTable.Routes.MapHubs(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); AuthConfig.RegisterAuth(); Database.SetInitializer(new CreateDatabaseIfNotExists <QuizWebAppDb>()); using (var db = new QuizWebAppDb()) { if (db.Contexts.Any() == false) { db.Contexts.Add(new Context { CurrentQuestionID = 1, CurrentState = ContextStateType.PleaseWait }); db.SaveChanges(); } } }