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