예제 #1
0
 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());
 }
예제 #2
0
        /// <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);
        }