예제 #1
0
        public IActionResult Register(string id)
        {
            Quiz           quiz           = _quizService.GetByLink(id);
            RegisterQuizVM registerQuizVM = new RegisterQuizVM();

            if (quiz != null)
            {
                string creatorName = string.Empty;

                switch (quiz.CreatorRole)
                {
                case "Student":

                    User studentUser = _userService.FindById(quiz.UserId);
                    if (User.Identity.IsAuthenticated && (User.IsInRole("Student")))
                    {
                        Guid studentId = Guid.Parse(User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value);
                        if (studentUser.Id.Equals(studentId))
                        {
                            return(RedirectToAction(nameof(Room), new { id = id }));
                        }
                    }
                    creatorName = $"{studentUser.FirstName} {studentUser.LastName}";
                    break;
                }

                registerQuizVM.CreatorName = creatorName;
                return(View(registerQuizVM));
            }

            return(View(registerQuizVM));
        }
예제 #2
0
        public IActionResult Register(string id, RegisterQuizVM viewModel)
        {
            string playerUsername = string.Empty;

            if (User.Identity.IsAuthenticated && (User.IsInRole("Student")))
            {
                if (viewModel.UseLoggedInUserName)
                {
                    Guid studentId = Guid.Parse(User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value);

                    User studentUser = _userService.FindById(studentId);
                    playerUsername = $"{studentUser.FirstName} {studentUser.LastName.Substring(0, 1)}.";
                }
                else
                {
                    playerUsername = viewModel.PlayerUsername;
                }
            }
            else
            {
                playerUsername = viewModel.PlayerUsername;
            }

            Quiz quiz = _quizService.GetQuizWithPlayersByLink(id);

            bool isUniquePlayerName = quiz.QuizPlayers.FirstOrDefault(qp => qp.Player.Name.Equals(playerUsername)) == null;

            if (!isUniquePlayerName)
            {
                switch (quiz.CreatorRole)
                {
                case "Student":
                    User studentUser = _userService.FindById(quiz.UserId);
                    viewModel.CreatorName = $"{studentUser.FirstName} {studentUser.LastName}";
                    break;
                }
                ViewBag.Message = "Player With the same name already exist fir this quiz. Please choose another name";
                return(View(viewModel));
            }

            Player player = new Player
            {
                Id   = Guid.NewGuid(),
                Name = playerUsername
            };

            _quizService.AddPlayerToQuiz(id, player);

            HttpContext.Response.Cookies.Append("drx1e", player.Id.ToString());

            return(RedirectToAction(nameof(Room), new { id = id }));
        }