public async Task <ListaPaginada <Mensaje> > ObtenerMensajesParaUsuario(MensajeParams mensajeParams) { var mensajes = _contexto.Mensajes .Include(x => x.Remitente).ThenInclude(x => x.Imagenes) .Include(x => x.Receptor).ThenInclude(x => x.Imagenes) .AsQueryable(); switch (mensajeParams.ContenedorMensaje) { case "Recibidos": mensajes = mensajes.Where(x => x.ReceptorId == mensajeParams.UsuarioId); break; case "Enviados": mensajes = mensajes.Where(x => x.RemitenteId == mensajeParams.UsuarioId); break; default: mensajes = mensajes.Where(x => x.ReceptorId == mensajeParams.UsuarioId && !x.Leido); break; } mensajes = mensajes.OrderByDescending(x => x.MensajeEnviado); return(await ListaPaginada <Mensaje> .Crear(mensajes, mensajeParams.NoPagina, mensajeParams.TamanoPagina)); }
public async Task <IActionResult> obtenerMensajesXUsuario(int usuarioId, [FromQuery] MensajeParams mensajeParams) { if (usuarioId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value)) { return(Unauthorized()); } mensajeParams.UsuarioId = usuarioId; var mensajesRepo = await _repo.ObtenerMensajesPorUsuario(mensajeParams); var mensajes = _mapper.Map <IEnumerable <MensajeReturn> >(mensajesRepo); Response.AgregarPaginacion(mensajesRepo.PaginaActual, mensajesRepo.TamanoPagina, mensajesRepo.Total, mensajesRepo.TotalPaginas); return(Ok(mensajes)); }
public async Task <ListaPagina <Mensajes> > ObtenerMensajesPorUsuario(MensajeParams mensajeParams) { var mensajes = _context.Mensajes.AsQueryable(); switch (mensajeParams.TipoContenido) { case "Inbox": mensajes = mensajes.Where(u => u.RemitenteId == mensajeParams.UsuarioId && u.RemitenteElimina == false); break; case "Outbox": mensajes = mensajes.Where(u => u.DestinatarioId == mensajeParams.UsuarioId && u.DestinatarioElimina == false); break; default: mensajes = mensajes.Where(u => u.RemitenteId == mensajeParams.UsuarioId && u.RemitenteElimina == false && u.EstaLeido == false); break; } mensajes = mensajes.OrderByDescending(m => m.FechaEnvio); return(await ListaPagina <Mensajes> .CrearAsync(mensajes, mensajeParams.NumeroPaginas, mensajeParams.TamanoPagina)); }