Пример #1
0
        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));
        }