示例#1
0
        public async Task <IActionResult> Create([Bind("CharacterId,Nickname,Birthdate,UserId")] Character character)
        {
            if (ModelState.IsValid)
            {
                string username = HttpContext.User.Claims.FirstOrDefault().Value;
                character.UserId      = _context.Users.FirstOrDefaultAsync(u => u.Login == username).Result.UserId;
                character.CharacterId = _context.Characters.Max(c => c.CharacterId) + 1;
                character.Birthdate   = DateTime.Now;
                _context.Add(character);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["UserId"] = new SelectList(_context.Users, "UserId", "Email", character.UserId);
            return(View(character));
        }
示例#2
0
        public async Task <IActionResult> Create([Bind("Email,Login,PasswordHash")] User user, string confirm_password)
        {
            if (ModelState.IsValid)
            {
                bool passwordsAreDifferent = (confirm_password != user.PasswordHash);
                int  id = _context.Users.Max(m => m.UserId) + 1;
                user.PasswordHash = getHashSha256(user.PasswordHash);
                user.UserId       = id;
                User matchByLogin = await _context.Users.FirstOrDefaultAsync(u => u.Login == user.Login);

                User matchByEmail = await _context.Users.FirstOrDefaultAsync(u => u.Email == user.Email);

                if ((matchByLogin != null) || (matchByEmail != null) || (passwordsAreDifferent))
                {
                    if (matchByLogin != null)
                    {
                        ModelState.AddModelError("Error", "This login already used. Please enter another");
                    }
                    if (matchByEmail != null)
                    {
                        ModelState.AddModelError("Error", "This email already used. Please enter another");
                    }
                    if (passwordsAreDifferent)
                    {
                        ModelState.AddModelError("Error", "Passwords are different. Please try again.");
                    }
                }
                else
                {
                    _context.Add(user);
                    await _context.SaveChangesAsync();

                    return(RedirectToAction("Login", true));
                }
            }
            return(View("Register"));
            //return RedirectToAction(nameof(Register));
        }