public ActionResult Cadastrar([Bind(Include = "CargoId, Menus")] PermissaoViewModel viewModel) { var cargo = _cargoRepositorio.ObterCargoPorId(viewModel.CargoId); if (cargo == null) { RegistroNaoEncontrado(); } PermissaoAcesso permissaoAcesso = new PermissaoAcesso(); foreach (var menu in viewModel.Menus) { var campos = viewModel.Menus .Where(m => m.Id == menu.Id) .SelectMany(c => c.Campos); permissaoAcesso.IncluirPermissaoAcesso(new PermissaoAcesso { MenuId = menu.Id, CargoId = viewModel.CargoId, Acessar = menu.Acessar, Cadastrar = menu.Cadastrar, Atualizar = menu.Atualizar, Excluir = menu.Excluir, Logs = menu.Logs, Campos = campos }); } if (Validar(permissaoAcesso)) { _controleAcessoRepositorio.AplicarPermissoes(viewModel.CargoId, permissaoAcesso.PermissoesAcesso); GravarLogAuditoria(TipoLogAuditoria.INSERT, permissaoAcesso); TempData["Sucesso"] = true; } PopularCargos(viewModel); PopularPermissoes(viewModel); return(View(viewModel)); }
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)); }