示例#1
0
        public async Task <PagesList <Adventure> > GetAdventures(AdventureParams adventureParams)
        {
            var adventures = _context.Adventures
                             .Include(aP => aP.AdventurePhotos)
                             .OrderByDescending(a => a.DateAdded)
                             .AsQueryable();


            // adventures = adventures.Where(a => a.Id == adventureParams.AdventureId);

            if (adventureParams.MinDistance != 0 || adventureParams.MaxDistance != 10000)
            {
                var minDistance = (adventureParams.MinDistance);
                var maxDistance = (adventureParams.MaxDistance);
                adventures = adventures.Where(a => a.Distance >= minDistance && a.Distance <= maxDistance);
            }

            if (adventureParams.TypeBicycle != "Wszystkie")
            {
                adventures = adventures.Where(a => a.TypeBicycle == adventureParams.TypeBicycle);
            }

            if (adventureParams.UserLikesAdventure)
            {
                // var UserId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);

                var userLikesAdventure = await GetAdventureLikes(adventureParams.UserId, adventureParams.AdventureIsLiked);

                adventures = adventures.Where(u => userLikesAdventure.Contains(u.Id));
            }

            if (adventureParams.AdventureIsLiked)
            {
                // var UserId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);

                var adventureIsLiked = await GetAdventureLikes(adventureParams.UserId, adventureParams.UserLikesAdventure);

                adventures = adventures.Where(u => adventureIsLiked.Contains(u.Id));
            }


            if (!string.IsNullOrEmpty(adventureParams.OrderBy))
            {
                switch (adventureParams.OrderBy)
                {
                case "dateAdded":
                    adventures = adventures.OrderByDescending(a => a.DateAdded);
                    break;

                default:
                    adventures = adventures.OrderByDescending(a => a.Distance);
                    break;
                }
            }

            return(await PagesList <Adventure> .CreateListAsync(adventures, adventureParams.PageNumber, adventureParams.PageSize));
        }
示例#2
0
        public async Task <PagesList <SellBicycle> > GetSellBicycles(SellBicycleParams sellBicycleParams)
        {
            var sellBicycles = _context.SellBicycles.Include(s => s.SellBicyclePhotos).Include(u => u.User).OrderByDescending(s => s.DateAdded).AsQueryable();

            if (sellBicycleParams.MinPrice != 0 || sellBicycleParams.MaxPrice != 10000)
            {
                var minPrice = (sellBicycleParams.MinPrice);
                var maxPrice = (sellBicycleParams.MaxPrice);
                sellBicycles = sellBicycles.Where(s => s.Price >= minPrice && s.Price <= maxPrice);
            }

            if (sellBicycleParams.TypeBicycle != "Wszystkie")
            {
                sellBicycles = sellBicycles.Where(a => a.TypeBicycle == sellBicycleParams.TypeBicycle);
            }


            if (sellBicycleParams.UserLikesSellBicycle)
            {
                // var UserId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);
                var userLikesAdventure = await GetSellBicycleLikes(sellBicycleParams.UserId, sellBicycleParams.SellBicycleIsLiked);

                sellBicycles = sellBicycles.Where(u => userLikesAdventure.Contains(u.Id));
            }

            if (sellBicycleParams.SellBicycleIsLiked)
            {
                // var UserId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);
                var adventureIsLiked = await GetSellBicycleLikes(sellBicycleParams.UserId, sellBicycleParams.UserLikesSellBicycle);

                sellBicycles = sellBicycles.Where(u => adventureIsLiked.Contains(u.Id));
            }

            if (!string.IsNullOrEmpty(sellBicycleParams.OrderBy))
            {
                switch (sellBicycleParams.OrderBy)
                {
                case "dateAdded":
                    sellBicycles = sellBicycles.OrderByDescending(a => a.DateAdded);
                    break;

                default:
                    sellBicycles = sellBicycles.OrderBy(a => a.Price);
                    break;
                }
            }


            return(await PagesList <SellBicycle> .CreateListAsync(sellBicycles, sellBicycleParams.PageNumber, sellBicycleParams.PageSize));
        }
示例#3
0
        public async Task <PagesList <Message> > GetMessagesForUser(MessageParams messageParams)
        {
            var messages = _context.Messages.Include(u => u.Sender).ThenInclude(p => p.UserPhotos)
                           .Include(u => u.Recipient).ThenInclude(p => p.UserPhotos).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.IsRead == false && u.RecipientDeleted == false);
                break;
            }

            messages = messages.OrderByDescending(d => d.DateSent);

            return(await PagesList <Message> .CreateListAsync(messages, messageParams.PageNumber, messageParams.PageSize));
        }
示例#4
0
        public async Task <PagesList <User> > GetUsers(UserParams userParams)
        {
            var users = _context.Users.Include(p => p.UserPhotos)
                        .Include(a => a.Adventures)
                        .Include(s => s.SellBicycles)
                        .OrderByDescending(u => u.LastActive)
                        .AsQueryable();

            users = users.Where(u => u.Id != userParams.UserId);
            //users = users.Where(u => u.Gender == userParams.Gender); //wybieranie płci => UsersController
            if (userParams.Gender != "Wszystkie")
            {
                users = users.Where(u => u.Gender == userParams.Gender);
            }

            if (userParams.UserLikes)
            {
                var userLikes = await GetUserLikes(userParams.UserId, userParams.UserLikes);

                users = users.Where(u => userLikes.Contains(u.Id));
            }

            if (userParams.UserIsLiked)
            {
                var UserIsLiked = await GetUserLikes(userParams.UserId, userParams.UserLikes);

                users = users.Where(u => UserIsLiked.Contains(u.Id));
            }

            if (userParams.AdventureIsLiked)
            {
                var AdventureIsLiked = await GetUserLikesAdventure(userParams.UserId, userParams.UserLikesAdventure);

                users = users.Where(u => AdventureIsLiked.Contains(u.Id));
            }

            if (userParams.UserLikesAdventure)
            {
                var userLikesAdventure = await GetUserLikesAdventure(userParams.UserId, userParams.UserLikesAdventure);

                users = users.Where(u => userLikesAdventure.Contains(u.Id));
            }

            if (userParams.MinAge != 0 || userParams.MaxAge != 100)
            {
                var minDate = DateTime.Today.AddYears(-userParams.MaxAge - 1);
                var maxDate = DateTime.Today.AddYears(-userParams.MinAge);
                users = users.Where(u => u.DateOfBirth >= minDate && u.DateOfBirth <= maxDate);
            }

            if (userParams.TypeBicycle != "Wszystkie")
            {
                users = users.Where(u => u.TypeBicycle == userParams.TypeBicycle);
            }

            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 PagesList <User> .CreateListAsync(users, userParams.PageNumber, userParams.PageSize));
        }