public ActionResult Create(SessionViewModel sessionViewModel)
		{
			User user = null;
			if (ModelState.IsValid)
			{
				user = _repository.GetAll<User>().SingleOrDefault(x => x.Username == sessionViewModel.Username);
				if (user == null)
				{
					ModelState.AddModelError("Username", "User not found");
				}
			}

			if (ModelState.IsValid)
			{
				if (!BCrypt.Net.BCrypt.Verify(sessionViewModel.Password, user.Password))
				{
					ModelState.AddModelError("Password", "Wrong password");
				}
			}

			if (ModelState.IsValid)
			{
				_authenticator.SetCookie(user.Username);
				if (!string.IsNullOrEmpty(sessionViewModel.ReturnUrl))
				{
					return Redirect(sessionViewModel.ReturnUrl);
				}

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

			return View("New", sessionViewModel);
		}
		public ActionResult Create(SessionViewModel sessionViewModel)
		{
			User user = null;
            _repository = new InMemoryRepository();
            _authenticator = new CookieAuthenticator();
			if (ModelState.IsValid)
			{
				user = _repository.GetAll<User>().SingleOrDefault(x => x.Username == sessionViewModel.Username);
				if (user == null)
				{
					ModelState.AddModelError(string.Empty, errorMessage);
				}
			}

			if (ModelState.IsValid)
			{
				if (!BCrypt.Net.BCrypt.Verify(sessionViewModel.Password, user.Password))
				{
					ModelState.AddModelError(string.Empty, errorMessage);
				}
			}

			if (ModelState.IsValid)
			{
				_authenticator.SetCookie(user.Username);
				var returnUrl = sessionViewModel.ReturnUrl;
				if (returnUrl != null)
				{
					Uri returnUri;
					if (Uri.TryCreate(returnUrl, UriKind.Relative, out returnUri))
					{
						return Redirect(sessionViewModel.ReturnUrl);
					}
				}

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

			return View("New", sessionViewModel);
		}