public ActionResult Cadastrar([Bind(Include = "Descricao, Vendedor")] CargosViewModel viewModel) { var cargo = new Cargo(viewModel.Descricao, viewModel.Vendedor); if (Validar(cargo)) { cargo.Id = _cargosRepositorio.Cadastrar(cargo); if (!_controleAcessoRepositorio.ExistePermissaoNoCargo(cargo.Id)) { var menus = _controleAcessoRepositorio.ObterMenus().ToList(); PermissaoAcesso permissaoAcesso = new PermissaoAcesso(); foreach (var menu in menus) { var campos = menus .Where(m => m.Id == menu.Id) .SelectMany(c => c.Campos); permissaoAcesso.IncluirPermissaoAcesso(new PermissaoAcesso { MenuId = menu.Id, CargoId = cargo.Id, Acessar = false, Cadastrar = false, Atualizar = false, Excluir = false, Logs = false, Campos = campos }); } _controleAcessoRepositorio.AplicarPermissoes(cargo.Id, permissaoAcesso.PermissoesAcesso); } TempData["Sucesso"] = true; GravarLogAuditoria(TipoLogAuditoria.INSERT, cargo); } return(View(viewModel)); }