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);
 }