예제 #1
0
        public async Task <IActionResult> Register(RegisterViewModel userModel)
        {
            if (ModelState.IsValid)
            {
                IEnumerable <UserModel> matchedUsers = _context.Users.Where(user => user.Email == userModel.Email || user.Name == userModel.Name);
                if (!matchedUsers.Any())
                {
                    UserModel tempUser = userModel.CreateUserModel();
                    _context.Add(tempUser);
                    await _context.SaveChangesAsync();

                    HttpContext.Session.SetInt32("user", tempUser.Id);
                    //await HttpContext.Session.CommitAsync();
                    return(RedirectToAction(nameof(PersonalAccount)));// TODO : redirect to personal account
                }
                else
                {
                    if (matchedUsers.Any(user => user.Email == userModel.Email))
                    {
                        ModelState.AddModelError("Email", "Пользователь с таким электронным адресом уже существует");
                    }
                    if (matchedUsers.Any(user => user.Name == userModel.Name))
                    {
                        ModelState.AddModelError("Name", "Пользователь с таким именем уже существует");
                    }
                }
            }
            else
            {
                ModelState.AddModelError("", "Error");
            }
            return(View(userModel));
        }