예제 #1
0
        /// <summary>
        /// DEPRECATED
        /// </summary>
        /// <returns></returns>
        public List <Notificacao> GetNotificacoesPorPerfil(int idClient, int idAplicacao, int conteudoCompleto = 0, int idProduto = 0, string versao = "")
        {
            using (MiniProfiler.Current.Step("Obtendo notificações por perfil")) {
                if (!RedisCacheManager.CannotCache(RedisCacheConstants.DadosFakes.KeyGetNotificacoesPorPerfil))
                {
                    return(RedisCacheManager.GetItemObject <List <Notificacao> > (RedisCacheConstants.DadosFakes.KeyGetNotificacoesPorPerfil));
                }

                var lstNotificacao = _notificacaoRepository.GetNotificacoesAplicacao(idAplicacao, idClient);

                var menus        = _menuBusiness.GetPermitidos((int)Aplicacoes.MsProMobile, idClient, conteudoCompleto, idProduto, versao);
                var exibeDuvidas = Utilidades.MenuPermitido(menus, (int)Utilidades.EMenuAccessObject.DuvidasAcademicas);

                var notificacoesAdm = lstNotificacao.Where(x => x.Matricula.Equals(-1));

                var lstObjetoNotificacao = notificacoesAdm.Select(x => new AccessObject {
                    Id   = x.IdNotificacao,
                    Nome = x.Texto
                }).ToList();

                var lstPermissoes = GetAlunoPermissoes(lstObjetoNotificacao, idClient, idAplicacao);

                var lstPermissoesVisualizacao = lstPermissoes.Where(x => x.AcessoId != (int)(Utilidades.PermissaoStatus.SemAcesso)).ToList();

                var notificacaoesPermitidas = new List <Notificacao> ();

                foreach (var objeto in lstObjetoNotificacao)
                {
                    var notificaocaoPermissao = lstPermissoesVisualizacao.Find(p => p.ObjetoId == objeto.Id);

                    if (notificaocaoPermissao != null)
                    {
                        notificacaoesPermitidas.Add(lstNotificacao.FirstOrDefault(x => x.IdNotificacao == objeto.Id));
                    }
                }

                if (exibeDuvidas)
                {
                    var notificacoesAutomaticas = _notificacaoDuvidaData.GetNotificacoesDuvidasAcademicasAluno(idClient);

                    foreach (var item in notificacoesAutomaticas)
                    {
                        item.Texto = item.Texto.Replace("#QTD", GetMensagemNotificacaoDuvidasAcademicas(item.TipoNotificacao.Id, item.Quantidade));
                    }

                    notificacaoesPermitidas.AddRange(notificacoesAutomaticas);
                }

                notificacaoesPermitidas = notificacaoesPermitidas.OrderByDescending(x => x.DataOriginal).ToList();

                return(notificacaoesPermitidas);
            }
        }
예제 #2
0
 private Task <List <Menu> > ObterPermissoesRecursosAsync(int matricula, string versao, Aplicacoes aplicacao)
 {
     return(Task.Factory.StartNew(() => _menuBusiness.GetPermitidos((int)aplicacao, matricula, 0, 0, versao)));
 }