public async Task <PagedList <Message> > GetMessagesThread(int userId, int recipientId, MessageParams messageParams, int maximumId = -1) { var messages = _context.Messages .Include(u => u.Sender).ThenInclude(p => p.Photos) .Include(u => u.Recipient).ThenInclude(p => p.Photos).AsQueryable(); if (maximumId != -1) { messages = messages.Where(m => m.Id < maximumId); } messages = messages.Where(m => ( (m.RecipientId == userId && m.SenderId == recipientId && m.RecipientDeleted == false) || (m.RecipientId == recipientId && m.SenderId == userId && m.SenderDeleted == false) )).OrderByDescending(m => m.SentDate); return(await PagedList <Message> .CreateAsync(messages, messageParams.PageNumber, messageParams.PageSize)); }