public async Task <PageList <Messages> > GetMessageForUser(MessageParams msgparms) { var messages = _context.messages.Include(r => r.Sender).ThenInclude(p => p.Photos) .Include(s => s.Recipaint).ThenInclude(s => s.Photos).AsQueryable(); switch (msgparms.MessageContainer) { case "Inbox": messages = messages.Where(u => u.RecipaintId == msgparms.UserId); break; case "Outbox": messages = messages.Where(u => u.SenderId == msgparms.UserId); break; default: messages = messages.Where(u => u.RecipaintId == msgparms.UserId && u.IsRead == false); break; } messages = messages.OrderByDescending(u => u.MessageSent); return(await PageList <Messages> .CreatAsync(messages, msgparms.MyProperty, msgparms.PageNumber)); }
public async Task <PageList <Message> > GetMessagesForUser(MessageParams messageParams) { var messages = _context.Messages .Include(m => m.Sender).ThenInclude(m => m.Photos).Include(r => r.Recipient) .ThenInclude(r => r.Photos).AsQueryable(); switch (messageParams.MessageContainer) { case "Inbox": messages = messages.Where(u => u.RecipientId == messageParams.UserId && u.RecipientDeleted == false); break; case "Outbox": messages = messages.Where(u => u.SenderId == messageParams.UserId && u.SenderDeleted == false); break; default: messages = messages.Where(u => u.RecipientId == messageParams.UserId && u.RecipientDeleted == false && u.IsRead == false); break; } messages = messages.OrderByDescending(m => m.MessagesSent); return(await PageList <Message> .CreatAsync(messages, messageParams.PageNumber, messageParams.PageSize)); }
public async Task <PageList <User> > GetUsers(UserParams userParams) { var users = _context.Users.Include(p => p.Photos).OrderByDescending(u => u.LastActive) .AsQueryable(); users = users.Where(u => u.Id != userParams.UserId); users = users.Where(users => users.Gender == userParams.Gender); if (userParams.Likers) { var userLikes = await GetUserLikes(userParams.UserId, userParams.Likers); users = users.Where(u => userLikes.Contains(u.Id)); } if (userParams.Likees) { var userLikees = await GetUserLikes(userParams.UserId, userParams.Likers); users = users.Where(u => userLikees.Contains(u.Id)); } if (userParams.MinAge != 18 || userParams.MaxAge != 99) { var minDob = DateTime.Today.AddYears(-userParams.MaxAge - 1); var maxDob = DateTime.Today.AddYears(-userParams.MinAge); users = users.Where(u => u.DateOfBirth >= minDob && u.DateOfBirth <= maxDob); } if (!string.IsNullOrEmpty(userParams.OrderBy)) { switch (userParams.OrderBy) { case "created": users = users.OrderByDescending(u => u.Created); break; default: users = users.OrderByDescending(u => u.LastActive); break; } } return(await PageList <User> .CreatAsync(users, userParams.PageNumber, userParams.PageSize)); }
public async Task <PageList <Company> > GetCompaniesAsync(CompanyDtoParameters parameters) { if (parameters == null) { throw new ArgumentException(nameof(parameters)); } var queryExpression = _context.companies as IQueryable <Company>; if (!string.IsNullOrEmpty(parameters.CompanyName)) { parameters.CompanyName = parameters.CompanyName.Trim(); queryExpression = queryExpression.Where(x => parameters.CompanyName == x.Name); } if (!string.IsNullOrEmpty(parameters.searchTerm)) { parameters.searchTerm = parameters.searchTerm.Trim(); queryExpression = queryExpression.Where(x => x.introduction.Contains(parameters.searchTerm) || x.Name.Contains(parameters.searchTerm)); } return(await PageList <Company> .CreatAsync(queryExpression, parameters.PageNumber, parameters.PageSize)); }