public async Task <IActionResult> Login(LoginModel loginModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(loginModel));
            }

            WatchUser user = await _userManager.FindByEmailAsync(loginModel.EmailOrUsername);

            if (user == null)
            {
                user = await _userManager.FindByNameAsync(loginModel.EmailOrUsername);
            }

            if (user == null)
            {
                ModelState.AddModelError("", "Email or password is invalid");
                return(View(loginModel));
            }

            var result = await _signInManager.PasswordSignInAsync(user, loginModel.Password, loginModel.RememberMe, false);

            if (result.Succeeded)
            {
                return(RedirectToAction("Index", "Home"));
            }

            ModelState.AddModelError("", "Email or password is invalid");
            return(View(loginModel));
        }
        public async Task <IActionResult> Register(RegisterModel registerModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(registerModel));
            }

            WatchUser user = registerModel;

            IdentityResult result = await _userManager.CreateAsync(user, registerModel.Password);

            if (!result.Succeeded)
            {
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }

                return(View(registerModel));
            }

            return(RedirectToAction("Index", "Home"));
        }