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);
        }
Beispiel #4
0
        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);
            }
        }
Beispiel #5
0
        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);
        }