public IActionResult CreatePlayer(RegisterViewModel player) { if (_loginManager.IsLoggedIn(HttpContext?.Session)) { return(RedirectToAction("Index", "Game")); } if (GetPlayerByUserName(player.Username) != null) { ViewData.ModelState.TryAddModelError("Username", "There is already a user with this name in the system."); } if (ModelState.IsValid) { _repository.Add(new Player() { PassWord = _hashing.GetHashedPassword(player.Password), UserName = player.Username, Level = 1 }); _emailSender.SendEmailAsync(player.Email, "Welcome to the Shadow World", String.Format( "Welcome to the shadow world! \n\n" + " Your username is: {0} \n" + " Your password is: {1}" , player.Username, player.Password)); HttpContext?.Session.Clear(); HttpContext?.Session.SetInt32(ContextData.PlayerId.ToString(), _repository.Read().First(p => p.UserName == player.Username).Id); HttpContext?.Session.CommitAsync(); return(RedirectToAction("Index", "Game")); } return(View()); }
/// <summary> /// /// </summary> /// <param name="httpContextSession"></param> /// <param name="player"></param> /// <param name="protector"></param> /// <returns>Wether the login was successful</returns> public bool Login(ISession httpContextSession, LoginViewModel player) { var playerModel = _playerRepo.Read()? .FirstOrDefault(p => _hashing.GetHashedPassword(player.Password) == p.PassWord && p.UserName == player.Username); if (playerModel != null) { httpContextSession.SetInt32(ContextData.PlayerId.ToString(), playerModel.Id); return(true); } return(false); }