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