Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
        }