public ActionResult Create(User user)
        {
            // don't user default user validations
            // since we don't need password confirmation
            ModelState.Clear();

            if (string.IsNullOrEmpty(user.Name))
            {
                ModelState.AddModelError("Username", "Please enter your username.");
            }
            if (string.IsNullOrEmpty(user.Password))
            {
                ModelState.AddModelError("Password", "Please enter your password.");
            }

            var userByName = DataContext.Users.Where(u => u.Name == user.Name).FirstOrDefault();
            if (userByName == null || !user.Authenticate(user.Password))
            {
                ModelState.AddModelError("Username", "Invalid username or password");
            }

            if (ModelState.IsValid)
            {
                CurrentUser = userByName;
                var message = string.Format("Successfully signed in as {0}", userByName.Name);
                return RedirectToAction("Index", "Movies").WithFlash(new { notice = message });
            }
            return View(user);
        }
        public ActionResult Create(User user)
        {
            if(DataContext.Users.Where(u => u.Name == user.Name).Any())
            {
                ModelState.AddModelError("Name", "A user with that name already exists.");
            }
            if (user.Password != user.PasswordConfirmation)
            {
                ModelState.AddModelError("Password", "Password must match confirmation.");
            }

            if (ModelState.IsValid)
            {
                DataContext.Users.Save(user);
                CurrentUser = user;
                return RedirectToAction("Index", "Movies");
            }

            return View(user);
        }
        public async Task<ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                // Create a local login before signing in the user

                //var user = new ApplicationUser() { UserName = model.UserName };
                var user = new User(model.UserName);
                var result = await IdentityManager.Users.CreateLocalUserAsync(user, model.Password);
                if (result.Success)
                {
                    await IdentityManager.Authentication.SignInAsync(AuthenticationManager, user.Id, isPersistent: false);
                    return RedirectToAction("Index", "Home");
                }
                else
                {
                    AddErrors(result);
                }
            }

            // If we got this far, something failed, redisplay form
            return View(model);
        }