public ActionResult Cadastro(UsuarioVM usuario)
        {
            using (IVIADbContext contexto = new IVIADbContext())
            {
                GerenteUsuarios gerenteUsuario = new GerenteUsuarios(contexto);
                try
                {
                    Usuario entidadeUsuario = gerenteUsuario.CriarNovoUsuario(usuario.Nome, usuario.Senha, usuario.Email);
                    contexto.Usuarios.Add(entidadeUsuario);
                    contexto.SaveChanges();
                    RedirectToAction("Index");
                }
                catch (RegrasDeNegocioException ex)
                {
                    ex.CopiarPara(ModelState);
                    usuario.Mensagem = "Erro!";
                }
            }

            return View(usuario);
        }
        public ActionResult Editar(UsuarioVM vm)
        {
            using (IVIADbContext contexto = new IVIADbContext())
            {
                GerenteUsuarios gerente = new GerenteUsuarios(contexto);
                Usuario usuario = new Usuario();
                usuario.Id = vm.Id;
                usuario.Nome = vm.Nome;
                usuario.Email = vm.Email;
                usuario.Senha = vm.Senha;

                try
                {
                    gerente.ValidarAlterarUsuario(usuario);

                    contexto.Entry<Usuario>(usuario).State = System.Data.EntityState.Modified;
                    contexto.SaveChanges();

                    RedirectToAction("Index");
                }
                catch (RegrasDeNegocioException ex)
                {
                    ex.CopiarPara(ModelState);
                    vm.Mensagem = "Erro";

                }
                return View(vm);
            }
        }