Example #1
0
        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());
        }
Example #2
0
        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();
        }
Example #3
0
 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("~/") }));
 }
Example #4
0
        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();
                }
            }
        }