public ActionResult Delete() { var userStore = new UserStore <IdentityUser>(new IdentityEntityContext()); var userManager = new UserManager <IdentityUser>(userStore); var userId = User.Identity.GetUserId(); var identityUser = userManager.FindById(userId); var logins = identityUser.Logins; foreach (var login in logins) { userManager.RemoveLogin(login.UserId, new UserLoginInfo(login.LoginProvider, login.ProviderKey)); } IdentityResult result = userManager.Delete(identityUser); Usuario usuario = apl.SelecionarById(userId); if (result.Succeeded) { Pessoa pessoa = usuario.Pessoa; apl.Deletar(pessoa, usuario); return(RedirectToAction("Logoff")); } else { PessoaUsuarioViewModel viewModel = Mapper.Map <Usuario, PessoaUsuarioViewModel>(usuario); ModelState.AddModelError("erro_identity", "Não foi possivel apagar a conta"); return(View("Perfil", viewModel)); } }
public ActionResult SignUp([Bind(Include = "Login,Senha,Nome,CPF,DataNasc")] PessoaUsuarioViewModel viewModel) { if (User.Identity.IsAuthenticated) { return(RedirectToAction("Index", "Home")); } if (ModelState.IsValid) { var userStore = new UserStore <IdentityUser>(new IdentityEntityContext()); var userManager = new UserManager <IdentityUser>(userStore); //Serve para permitir caracteres especiais no email //Na verdade é no username, mas como vamos o email como username... vai ter que permitir de qualquer forma var userValidator = new UserValidator <IdentityUser>(userManager) { AllowOnlyAlphanumericUserNames = false }; userManager.UserValidator = userValidator; var identityUser = new IdentityUser { Email = viewModel.Login, UserName = viewModel.Login }; IdentityResult result = userManager.Create(identityUser, viewModel.Senha); if (result.Succeeded) { // TODO Enviar confirmação para o email Login(identityUser, userManager, false); viewModel.Id = identityUser.Id; //TODO Criptografar a senha Usuario usuario = Mapper.Map <PessoaUsuarioViewModel, Usuario>(viewModel); Pessoa pessoa = Mapper.Map <PessoaUsuarioViewModel, Pessoa>(viewModel); pessoa.CPF = pessoa.CPF.Replace(".", "").Replace("-", ""); usuario.DataCadastro = DateTime.Today; apl.Inserir(pessoa, usuario); return(RedirectToAction("Index", "Home")); } else { ModelState.AddModelError("erro_identity", "Não é possivel fazer o cadastro com essas informações"); } } return(View(viewModel)); }
public ActionResult Perfil() { // TODO Pedir confirmação se deseja apagar ou salvar as alterações string userId = User.Identity.GetUserId(); Usuario usuario = apl.SelecionarById(userId); if (usuario == null) { return(HttpNotFound()); } PessoaUsuarioViewModel viewModel = Mapper.Map <Usuario, PessoaUsuarioViewModel>(usuario); return(View(viewModel)); }
public ActionResult Perfil([Bind(Include = "Login,Senha,Nome,CPF,DataNasc")] PessoaUsuarioViewModel viewModel) { if (ModelState.IsValid) { viewModel.Id = User.Identity.GetUserId(); Usuario usuario = Mapper.Map <PessoaUsuarioViewModel, Usuario>(viewModel); Pessoa pessoa = Mapper.Map <PessoaUsuarioViewModel, Pessoa>(viewModel); pessoa.CPF = pessoa.CPF.Replace(".", "").Replace("-", ""); apl.Alterar(pessoa, usuario); return(RedirectToAction("Index", "Home")); } else { ModelState.AddModelError("erro_identity", "Não foi possivel salvar"); return(View(viewModel)); } }