/// <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())); }
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); }