Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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));
        }