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));
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
        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));
        }
Beispiel #4
0
        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));
        }