public int InsertPermissaoRegra(string descricao, int idRegra, PermissaoRegra permissaoRegra) { try { using (var ctx = new DesenvContext()) { var idPermissaoRegra = 0; var pr = new tblAccess_Permission_Rule() { txtDescricao = descricao, intRegraId = idRegra, intAccessoId = permissaoRegra.AcessoId, intOrdem = -1, dteUltimaAlteracao = DateTime.Now, intEmployeeID = permissaoRegra.EmployeeId, intMensagemId = permissaoRegra.MensagemId, bitDataLimite = permissaoRegra.IsDataLimite, intInterruptorId = -1, bitAtivo = true }; ctx.tblAccess_Permission_Rule.Add(pr); ctx.SaveChanges(); idPermissaoRegra = pr.intPermissaoRegraId; return(idPermissaoRegra); } } catch { return(0); throw; } }
public int SetRegra(PermissaoRegra permissaoRegra) { using (var ctx = new DesenvContext()) { var condicoes = new List <RegraCondicao>(); foreach (var item in permissaoRegra.Regra.RegraDetalhes) { new RegraCondicao { Id = item.Id }; condicoes.Add(item); } var dadosCondicoes = (from c in condicoes join ad in ctx.tblAccess_Detail on c.Id equals ad.intDetalheId select new RegraCondicao { Id = ad.intDetalheId, Descricao = ad.txtDescricao }).ToList(); var descricaoRegra = ""; var count = dadosCondicoes.Count(); var i = 1; if (count >= 1) { foreach (var desc in dadosCondicoes) { if (i == count) { descricaoRegra += desc.Descricao; } else { descricaoRegra += desc.Descricao + " + "; } i++; } } var idRegraCriada = InsertRegra(descricaoRegra, permissaoRegra.EmployeeId); var ret1 = InsertCondicoesRegra(idRegraCriada, dadosCondicoes); if (ret1 == 0) { return(0); } var idPermissaoRegraCriada = InsertPermissaoRegra(descricaoRegra, idRegraCriada, permissaoRegra); return(idPermissaoRegraCriada); } }
public int AlteraNivelAcesso(PermissaoRegra permissaoObjeto) { using (var ctx = new DesenvContext()) { var regraPermitida = (from po in ctx.tblAccess_PermissionObject join pr in ctx.tblAccess_Permission_Rule on po.intPermissaoRegraId equals pr.intPermissaoRegraId where po.intPermissionObject == permissaoObjeto.Id select new { idPermissaoRegra = po.intPermissaoRegraId } ).FirstOrDefault(); var dados = ctx.tblAccess_Permission_Rule.Where(p => p.intPermissaoRegraId == regraPermitida.idPermissaoRegra).ToList(); dados.ForEach(x => { x.intAccessoId = permissaoObjeto.AcessoId; }); ctx.SaveChanges(); } return(1); }
public List <PermissaoRegra> GetAlunoPermissoesMenu(List <Menu> lstMenu, int idClient, int idAplicacao, DateTime?data = null, int idProduto = 0) { using (var ctx = new DesenvContext()) { var aplicacoesServico = Utilidades.AplicacoesServico(); var condicoesPreenchidasPeloAluno = GetCondicoesPreenchidasPeloAluno(idClient, idAplicacao); var condicoesPreenchidasPeloAlunoProduto = condicoesPreenchidasPeloAluno.Where(x => idProduto == 0 || idProduto == (int)Produto.Produtos.NAO_DEFINIDO || x.Produto == idProduto).ToList(); var acessoEspecial = GetAcessoEspecialAluno(idClient); if (acessoEspecial.Any()) { lstMenu.AddRange(acessoEspecial); } var regrasMenus = GetRegrasMenu(lstMenu, idAplicacao); var isBeforeDataLimite = Utilidades.IsBeforeDataLimite(idAplicacao, Utilidades.GetYear()); if (!isBeforeDataLimite) { regrasMenus.RemoveAll(s => s.IsDataLimite == true); } var menu = from r in regrasMenus group r by r.ObjetoId into g select new { IdMenu = g.Key, PermissoesMenu = g.ToList().OrderBy(x => x.Ordem).ToList() }; var lstPermissoesMenu = new List <PermissaoRegra>(); var condicoesRegras = _accessEntity.GetRegraCondicoes(idAplicacao); var produtosPermissoesSeparadas = Utilidades.ProdutosR3(); produtosPermissoesSeparadas.Add(Produto.Produtos.MEDELETRO.GetHashCode()); produtosPermissoesSeparadas.Add(Produto.Produtos.MEDELETRO_IMED.GetHashCode()); produtosPermissoesSeparadas.Add(Produto.Produtos.CPMED.GetHashCode()); var condicoesPreenchidasPeloAlunoDemaisProduto = condicoesPreenchidasPeloAluno.Where(x => idProduto == 0 || idProduto == (int)Produto.Produtos.NAO_DEFINIDO || !produtosPermissoesSeparadas.Contains(x.Produto)).ToList(); foreach (var itemMenu in menu) { if (produtosPermissoesSeparadas.Contains(idProduto) && IsMenuMain(itemMenu.IdMenu)) { var permissao = GetPermissoesAoItemDoAplicativo(condicoesPreenchidasPeloAlunoProduto, itemMenu.PermissoesMenu, condicoesRegras); lstPermissoesMenu.Add(permissao); } else if (aplicacoesServico.Contains(idAplicacao)) { var permissao = GetPermissoesAoItemDoAplicativo(condicoesPreenchidasPeloAluno, itemMenu.PermissoesMenu, condicoesRegras); lstPermissoesMenu.Add(permissao); } else { var permissao = GetPermissoesAoItemDoAplicativo(condicoesPreenchidasPeloAlunoDemaisProduto, itemMenu.PermissoesMenu, condicoesRegras); lstPermissoesMenu.Add(permissao); } } var HasMenuRevisaoDeEstudos = lstMenu.Any(x => x.Id == Constants.MenuRevisaoDeEstudos); if (HasMenuRevisaoDeEstudos && PodeVerRevisaoEstudos(idClient, data)) { var pr = new PermissaoRegra { AcessoId = 3, Ativo = true, ObjetoId = 79, MensagemId = -1, }; lstPermissoesMenu.Add(pr); } var HasMenuRoteiroDeTreinamento = lstMenu.Any(x => x.Id == Constants.MenuRoteiroDeTreinamento); if (HasMenuRoteiroDeTreinamento && PodeVerRoteiroDeTreinamento(idClient, data)) { var pr = new PermissaoRegra { AcessoId = 3, Ativo = true, ObjetoId = 14, MensagemId = -1, }; lstPermissoesMenu.Add(pr); } return(lstPermissoesMenu); } }
public bool AlunoPossuiPermissao(List <RegraCondicao> condicoesPreenchidasPeloAluno, PermissaoRegra permissao, List <RegraCondicao> condicoesRegras) { var condicoesDaRegra = condicoesRegras.Where(c => c.IdRegra == permissao.Regra.Id); var regraPossuiCondicoes = condicoesDaRegra.Count() > 0; if (!regraPossuiCondicoes) { return(false); } foreach (var condicaoDaRegra in condicoesDaRegra) { if (!AlunoPreencheCondicao(condicoesPreenchidasPeloAluno, condicaoDaRegra)) { return(false); } } return(true); }