示例#1
0
        /// <summary>
        /// Método responsável pela obtenção de notificações do usuário realizando alguns filtros
        /// </summary>
        /// <param name="pIdUsuario"></param>
        /// <param name="DataGeracao"></param>
        /// <param name="ocultarVisualizadas"></param>
        /// <returns></returns>
        public IList <DTONotificacao> ConsultarNotificacaoPorUsuario(int pIdUsuario, DateTime?DataGeracao, bool ocultarVisualizadas = true)
        {
            notificacaoBM = new BMNotificacao();

            IList <Notificacao> lstNotificacao;

            if (!DataGeracao.HasValue)
            {
                lstNotificacao =
                    (notificacaoBM.ObterPorUsuario(new Usuario {
                    ID = pIdUsuario
                }, null)).OrderByDescending(
                        x => x.DataGeracao).ToList();
            }
            else
            {
                lstNotificacao =
                    (notificacaoBM.ObterPorUsuario(new Usuario {
                    ID = pIdUsuario
                }, DataGeracao)).OrderByDescending(
                        x => x.DataGeracao).ToList();
            }

            if (ocultarVisualizadas)
            {
                lstNotificacao = lstNotificacao.Where(n => !n.MensagemLida.Equals(Constantes.Sim)).ToList();
            }

            if (lstNotificacao.Count == 0)
            {
                return(new List <DTONotificacao>());
            }

            return(ConverterDominioDTO(lstNotificacao.ToList()));
        }
示例#2
0
        public DTONotificacoes ConsultarNotificacaoPorUsuarioPaginado(int pIdUsuario, DateTime?DataGeracao, int pagina, int limitePorPagina, bool ocultarVisualizadas = true)
        {
            notificacaoBM = new BMNotificacao();

            var dto = new DTONotificacoes();

            IList <Notificacao> lstNotificacao;

            if (!DataGeracao.HasValue)
            {
                lstNotificacao = (notificacaoBM.ObterPorUsuario(new Usuario()
                {
                    ID = pIdUsuario
                }, null))
                                 .OrderByDescending(x => x.DataGeracao).ToList();
            }
            else
            {
                lstNotificacao = (notificacaoBM.ObterPorUsuario(new Usuario()
                {
                    ID = pIdUsuario
                }, DataGeracao))
                                 .OrderByDescending(x => x.DataGeracao).ToList();
            }

            if (lstNotificacao.Count == 0)
            {
                return(new DTONotificacoes());
            }

            if (ocultarVisualizadas)
            {
                lstNotificacao = lstNotificacao.Where(n => !n.MensagemLida.Equals(Constantes.Sim)).ToList();
            }

            // Retorna o total de páginas para contagem
            dto.TotalNotificacoes = lstNotificacao.Count;

            // Paginação
            lstNotificacao = lstNotificacao.Skip((pagina - 1) * limitePorPagina).Take(limitePorPagina).ToList();

            dto.Notificacoes = ConverterDominioDTO(lstNotificacao.ToList()).ToList();

            return(dto);
        }