Ejemplo n.º 1
0
        public async Task <PagedList <Advert> > GetActiveAdverts(AdvertParams advertParams)
        {
            var adverts = _context.Adverts.Where(a => a.AdvertStatus.ToLower() == "active").Include(p => p.Photos).Include(u => u.User).AsQueryable();

            if (advertParams.Make != null && advertParams.Make != "")
            {
                adverts = adverts.Where(a => a.Make.ToLower().Contains(advertParams.Make.ToLower()));
            }
            if (advertParams.Model != null && advertParams.Model != "")
            {
                adverts = adverts.Where(a => a.Model.ToLower().Contains(advertParams.Model.ToLower()));
            }
            if (advertParams.TransmissionType != null && advertParams.TransmissionType != "")
            {
                adverts = adverts.Where(a => a.TransmissionType.ToLower() == advertParams.TransmissionType.ToLower());
            }
            if (advertParams.FuelType != null && advertParams.FuelType != "")
            {
                adverts = adverts.Where(a => a.FuelType.ToLower() == advertParams.FuelType.ToLower());
            }
            if (advertParams.DriveType != null && advertParams.DriveType != "")
            {
                adverts = adverts.Where(a => a.DriveType.ToLower() == advertParams.DriveType.ToLower());
            }
            if (advertParams.Colour != null && advertParams.Colour != "")
            {
                adverts = adverts.Where(a => a.Colour.ToLower() == advertParams.Colour.ToLower());
            }
            if (advertParams.BodyStyle != null && advertParams.BodyStyle != "")
            {
                adverts = adverts.Where(a => a.BodyStyle.ToLower() == advertParams.BodyStyle.ToLower());
            }

            if (advertParams.MinPrice != 0 || advertParams.MaxPrice != 10000000)
            {
                adverts = adverts.Where(a => a.Price >= advertParams.MinPrice && a.Price <= advertParams.MaxPrice);
            }
            if (advertParams.MinModelYear != 1900 || advertParams.MaxModelYear != DateTime.Now.Year + 1)
            {
                adverts = adverts.Where(a => a.ModelYear >= advertParams.MinModelYear && a.ModelYear <= advertParams.MaxModelYear);
            }
            if (advertParams.MinHorsePower != 0 || advertParams.MaxHorsePower != 3000)
            {
                adverts = adverts.Where(a => a.HorsePower >= advertParams.MinHorsePower && a.HorsePower <= advertParams.MaxHorsePower);
            }
            if (advertParams.MinSeatNumber != 1 || advertParams.MaxSeatNumber != 50)
            {
                adverts = adverts.Where(a => a.SeatNumber >= advertParams.MinSeatNumber && a.SeatNumber <= advertParams.MaxSeatNumber);
            }
            if (advertParams.MinMileage != 0 || advertParams.MaxMileage != 20000000)
            {
                adverts = adverts.Where(a => a.Mileage >= advertParams.MinMileage && a.Mileage <= advertParams.MaxMileage);
            }
            if (advertParams.MinWeight != 0 || advertParams.MaxWeight != 10000)
            {
                adverts = adverts.Where(a => a.Weight >= advertParams.MinWeight && a.Weight <= advertParams.MaxWeight);
            }

            return(await PagedList <Advert> .CreateAsync(adverts, advertParams.PageNumber, advertParams.PageSize));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> GetActivePosts([FromQuery] AdvertParams advertParams)
        {
            var posts = await _repo.GetActiveAdverts(advertParams);

            var postsToReturn = _mapper.Map <IEnumerable <AdvertForListDto> >(posts);

            Response.AddPagination(posts.CurrentPage, posts.PageSize,
                                   posts.TotalItemCount, posts.TotalPages);

            return(Ok(postsToReturn));
        }