public UsuarioViewModel CriarUsuarioViewModel(string email) { var usuarioViewModel = new UsuarioViewModel { Email = email, Carrinho = Compras.MeuCarrinho.ObterCarrinho() }; return usuarioViewModel; }
public ActionResult Cadastrar(UsuarioViewModel usuarioViewModel) { ViewData[MercadoriasViewModel.Mercadorias] = new MercadoriasViewModel(repositorioDeCategorias.ObterTodos()); string mensagem = "Não foi possível realizar o cadastro. Por favor tente mais tarde."; if (Seguranca.Autenticacao.EmailJaFoiCadastrado(usuarioViewModel.Email)) { mensagem = "Este e-mail já foi cadastrado. Por favor informe um novo e-mail."; goto errou; } if (Seguranca.Autenticacao.CpfJaFoiCadastrado(usuarioViewModel.Cpf)) { mensagem = "Este CPF já foi cadastrado. Por favor informe um novo CPF."; goto errou; } if (!ModelState.IsValid) { ModelState nascimento = null; if (ModelState.TryGetValue("DataDeNascimento", out nascimento)) { if ((nascimento != null) && (nascimento.Errors.Count > 0) && (nascimento.Errors[0].ErrorMessage.Contains("DataDeNascimento"))) { ModelState.Remove("DataDeNascimento"); ModelState.AddModelError("DataDeNascimento", "* Data de nascimento inválida."); } } } ModelState cpf = null; if (ModelState.TryGetValue("Cpf", out cpf)) { if ((cpf != null) && (cpf.Value.AttemptedValue != string.Empty)) { int numeroDeDigitos = cpf.Value.AttemptedValue.Count(char.IsNumber); if (numeroDeDigitos != 11) { ModelState.Remove("Cpf"); ModelState.AddModelError("Cpf", "* Cpf inválido."); } } } ModelState celular = null; if (ModelState.TryGetValue("TelefoneCelular", out celular)) { if ((celular != null) && (cpf.Value.AttemptedValue != string.Empty)) { int numeroDeDigitos = celular.Value.AttemptedValue.Count(char.IsNumber); if (numeroDeDigitos < 10) { ModelState.Remove("TelefoneCelular"); ModelState.AddModelError("TelefoneCelular", "* Telefone Celular inválido."); } } } ModelState cep = null; if (ModelState.TryGetValue("CEP", out cep)) { if ((cep != null) && (cep.Value.AttemptedValue != string.Empty)) { int numeroDeDigitos = cep.Value.AttemptedValue.Count(char.IsNumber); if (numeroDeDigitos < 8) { ModelState.Remove("CEP"); ModelState.AddModelError("CEP", "* CEP inválido."); } } } if (!ModelState.IsValid) return View(usuarioViewModel); if (usuarioViewModel.Senha != usuarioViewModel.ConfirmacaoDaSenha) { ModelState.AddModelError("ConfirmaSenha", "* Os campos Senha e Confirmação da Senha devem ser iguais."); return View("Cadastrar", usuarioViewModel); } var usuario = Mapper.Map<UsuarioViewModel, Usuario>(usuarioViewModel); FabricaDeUsuario.Instancia().CriarUsuario(usuario); bool adicionado = false; foreach (var permissao in repositorioDePermissoes.ObterTodos()) { if (permissao.Tipo == Permissao.Tipos.Cliente) { permissao.AdicionarUsuario(usuario); adicionado = repositorioDePermissoes.Editar(permissao); } } if (adicionado) { Seguranca.Autenticacao.AutenticarUsuario(usuario.Email, usuario.Senha); return RedirectToAction("Index", "Home"); } errou: ViewBag.Errou = true; ViewBag.Mensagem = mensagem; return View("Cadastrar", usuarioViewModel); }
public ActionResult TrocarSenha(UsuarioViewModel usuarioViewModel, FormCollection form) { ViewData[MercadoriasViewModel.Mercadorias] = new MercadoriasViewModel(repositorioDeCategorias.ObterTodos()); ModelState.Clear(); string msgErro = string.Empty; string msgFalha = string.Empty; bool senhaAntigaConfere = false; if (form.AllKeys.Contains("SenhaAntiga")) senhaAntigaConfere = Seguranca.Autenticacao.SenhaConfere(form["SenhaAntiga"]); if (!senhaAntigaConfere) { msgFalha = "A senha antiga não confere. Por favor tente novamente ou solicite o reenvio da senha."; goto falha; } bool novaSenhaEConfirmacaoSaoIguais = false; if ((form.AllKeys.Contains("NovaSenha")) && (form.AllKeys.Contains("ConfirmacaoNovaSenha"))) novaSenhaEConfirmacaoSaoIguais = form["NovaSenha"] == form["ConfirmacaoNovaSenha"]; if (!novaSenhaEConfirmacaoSaoIguais) { msgFalha = "Os campos \"Nova senha\" e \"Confirme a nova senha\" devem ser iguais. Por favor tente novamente."; goto falha; } var usuario = Seguranca.Autenticacao.ObterUsuarioAutenticado(); usuario.Senha = form["NovaSenha"]; bool trocou = repositorioDeUsuarios.Editar(usuario); if (trocou) { ViewBag.TrocouSenha = true; Seguranca.Autenticacao.InvalidarUsuario(); Seguranca.Autenticacao.AutenticarUsuario(usuarioViewModel.Email, usuario.Senha); ViewBag.TrocouSenha = true; return View(usuarioViewModel); } msgErro = "Não foi possível trocar a senha. Por favor tente mais tarde."; goto erro; falha: ViewBag.Errou = false; ViewBag.Falhou = true; ViewBag.Mensagem = msgErro; ViewBag.MensagemNaoTrocouSenha = msgFalha; return View(usuarioViewModel); erro: ViewBag.Errou = true; ViewBag.Falhou = false; ViewBag.Mensagem = msgErro; return View(usuarioViewModel); }
public ActionResult Editar(UsuarioViewModel usuarioViewModel) { ViewData[MercadoriasViewModel.Mercadorias] = new MercadoriasViewModel(repositorioDeCategorias.ObterTodos()); ModelState.Remove("Senha"); ModelState.Remove("ConfirmacaoDaSenha"); if (!ModelState.IsValid) { ModelState nascimento = null; if (ModelState.TryGetValue("DataDeNascimento", out nascimento)) { if ((nascimento != null) && (nascimento.Errors.Count > 0) && (nascimento.Errors[0].ErrorMessage.Contains("DataDeNascimento"))) { ModelState.Remove("DataDeNascimento"); ModelState.AddModelError("DataDeNascimento", "* Data de nascimento inválida."); } } } ModelState cpf = null; if (ModelState.TryGetValue("Cpf", out cpf)) { if ((cpf != null)&&(cpf.Value.AttemptedValue!=string.Empty)) { int numeroDeDigitos = cpf.Value.AttemptedValue.Count(char.IsNumber); if (numeroDeDigitos != 11) { ModelState.Remove("Cpf"); ModelState.AddModelError("Cpf", "* Cpf inválido."); } } } ModelState celular = null; if (ModelState.TryGetValue("TelefoneCelular", out celular)) { if ((celular != null)&&(cpf.Value.AttemptedValue!=string.Empty)) { int numeroDeDigitos = celular.Value.AttemptedValue.Count(char.IsNumber); if (numeroDeDigitos < 10) { ModelState.Remove("TelefoneCelular"); ModelState.AddModelError("TelefoneCelular", "* Telefone Celular inválido."); } } } ModelState cep = null; if (ModelState.TryGetValue("CEP", out cep)) { if ((cep != null)&&(cep.Value.AttemptedValue!=string.Empty)) { int numeroDeDigitos = cep.Value.AttemptedValue.Count(char.IsNumber); if (numeroDeDigitos < 8) { ModelState.Remove("CEP"); ModelState.AddModelError("CEP", "* CEP inválido."); } } } if (!ModelState.IsValid) return View(usuarioViewModel); var usuarioAntigo = Seguranca.Autenticacao.ObterUsuarioAutenticado(); var usuario = Mapper.Map<UsuarioViewModel, Usuario>(usuarioViewModel); FabricaDeUsuario.Instancia().CriarUsuario(usuario); //usuarioAntigo.EditarTelefones(usuario.Telefones); //usuarioAntigo.EditarEndereco(usuario.Endereco); usuario.Senha = usuarioAntigo.Senha; usuario.Id = usuarioAntigo.Id; //usuario.Telefones = usuarioAntigo.Telefones; //usuario.Endereco = usuarioAntigo.Endereco; bool editado = repositorioDeUsuarios.Editar(usuario); if (editado) { ViewBag.EditouDados = true; return View(usuarioViewModel); } ViewBag.Errou = true; ViewBag.Mensagem = "Não foi possível editar os dados. Por favor tente mais tarde."; return View(usuarioViewModel); }