public ActionResult Register(AccountViewModel avm) { if (!ModelState.IsValid) { ModelState.AddModelError("", "Invalid data"); return View(avm); } UserEntity user = new UserEntity() { Login = avm.Login, Email = avm.Email, PasswordHash = userService.GetHash(avm.Password), FirstName = avm.FirstName, SecondName = avm.SecondName, ThirdName = avm.ThirdName }; if (userService.GetByPredicate(entity => entity.Login == user.Login || entity.Email == user.Email).Any()) { ModelState.AddModelError("", "This login already used"); return View(avm); } RoleEntity role = roleService.GetByPredicate(entity => entity.Name == "user").First(); userService.CreateUser(user); user = userService.GetByLogin(user.Login); userService.SetRole(user, role); LogIn(user.Login); SessionPersister.Username = user.Login; return Redirect("/Home/Index"); }
// GET: Account public ActionResult Index() { if (!SessionPersister.IsInRole("user")) { return Redirect("/Home/Index"); } UserEntity user = userService.GetByLogin(SessionPersister.Username); AccountViewModel avm = new AccountViewModel() { Login = user.Login, Email = user.Email, FirstName = user.FirstName, SecondName = user.SecondName, ThirdName = user.ThirdName }; return View(avm); }