// GET: /Usuario/Create
        public ActionResult Create()
        {
            Seguranca.ValidaAcesso(1);
            ViewBag.IdFilial = new SelectList(db.Filiais, "Id", "Nome");
            ViewBag.IdPerfil = new SelectList(db.Perfis, "Id", "Nome");
            ViewBag.IdTipoTelefone = new SelectList(db.TiposTelefone, "Id", "Nome");
            ViewBag.TiposTelefone = db.TiposTelefone;

            var u = new UsuarioViewModel();
            return View(u);
        }
 private void TransferePropriedades( UsuarioViewModel usuOrigem, Usuario usuDestino)
 {
     usuDestino.Id = usuOrigem.Id;
     usuDestino.Login = usuOrigem.Login;
     usuDestino.Nome = usuOrigem.Nome;
     usuDestino.IdPerfil = usuOrigem.IdPerfil;
     usuDestino.IdFilial = usuOrigem.IdFilial;
     usuDestino.Email = usuOrigem.Email;
     usuDestino.Empresa = usuOrigem.Empresa;
     usuDestino.Cpf = usuOrigem.Cpf;
     usuDestino.Rg = usuOrigem.Rg;
     usuDestino.Endereco = usuOrigem.Endereco;
     usuDestino.NumeroEndereco = usuOrigem.NumeroEndereco;
     usuDestino.Bairro = usuOrigem.Bairro;
     usuDestino.Cidade = usuOrigem.Cidade;
     usuDestino.Uf = usuOrigem.Uf;
     usuDestino.Cep = usuOrigem.Cep;
     usuDestino.Ativo = usuOrigem.Ativo;
     usuDestino.TrocarSenha = usuOrigem.TrocarSenha;
     usuDestino.Complemento = usuOrigem.Complemento;
 }
        private void MontaListaTelefones(HttpRequestBase request, UsuarioViewModel usu)
        {
            int contTelefone = 1;

            string telefone = request.Form["telefone" + contTelefone];
            while (! String.IsNullOrEmpty(telefone))
            {
                telefone = telefone.Replace("_"," ");
                string tipoTelefone = request.Form["idtipotelefone" + contTelefone];
                if (! String.IsNullOrEmpty(tipoTelefone))
                {
                    usu.Telefones.Add(new ItemTelefone { Telefone = telefone, IdTipoTelefone = Convert.ToInt16(tipoTelefone) });
                }
                else
                {
                    usu.Telefones.Add(new ItemTelefone { Telefone = telefone });
                }

                contTelefone++;
                telefone = Request.Form["telefone" + contTelefone];
            }
        }
        // GET: /Usuario/Edit/5
        public ActionResult Edit(int? id)
        {
            Seguranca.ValidaAcesso(2);

            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            Usuario usuario = db.Usuarios.Find(id);
            if (usuario == null)
            {
                return HttpNotFound();
            }

            var usuarioVM = new UsuarioViewModel();
            usuarioVM.Id = usuario.Id;
            usuarioVM.Login = usuario.Login;
            usuarioVM.Nome = usuario.Nome;
            usuarioVM.IdPerfil = usuario.IdPerfil;
            usuarioVM.IdFilial = usuario.IdFilial;
            usuarioVM.Email = usuario.Email;
            usuarioVM.Empresa = usuario.Empresa;
            usuarioVM.Cpf = usuario.Cpf;
            usuarioVM.Rg = usuario.Rg;
            usuarioVM.Endereco = usuario.Endereco;
            usuarioVM.NumeroEndereco = usuario.NumeroEndereco;
            usuarioVM.Bairro = usuario.Bairro;
            usuarioVM.Cidade = usuario.Cidade;
            usuarioVM.Uf = usuario.Uf;
            usuarioVM.Cep = usuario.Cep;
            usuarioVM.Ativo = usuario.Ativo;
            usuarioVM.TrocarSenha = usuario.TrocarSenha;
            usuarioVM.Complemento = usuario.Complemento;

            var telefones = db.TelefonesUsuario.Where(t => t.IdUsuario == id).ToList();
            foreach (var t in telefones)
            {
                usuarioVM.Telefones.Add(new ItemTelefone { Telefone = t.Telefone, IdTipoTelefone = t.IdTipoTelefone });
            }

            ViewBag.IdFilial = new SelectList(db.Filiais, "Id", "Nome", usuarioVM.IdFilial);
            ViewBag.IdPerfil = new SelectList(db.Perfis, "Id", "Nome", usuarioVM.IdPerfil);
            ViewBag.IdTipoTelefone = new SelectList(db.TiposTelefone, "Id", "Nome");
            ViewBag.TiposTelefone = db.TiposTelefone;

            return View(usuarioVM);
        }