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(string.Empty, errorMessage);
}
}
if (ModelState.IsValid)
{
if (!Cryptography.Verify(user.Password, sessionViewModel.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);
}