Ejemplo n.º 1
0
        public IEnumerable <Advert> GetAll(AdvertsFilterRequestModel filters, AdvertsSortRequestModel sortInfo, int pageNumber = 0, int pageSize = 10)
        {
            var adverts = _advertRepository.GetAll();

            if (filters != null)
            {
                adverts = FilterAdverts(adverts, filters);
            }

            if (sortInfo != null)
            {
                adverts = SortAdverts(adverts, sortInfo);
            }

            var mappedAdverts = adverts.Where(x => !x.IsClosed)
                                .Skip(pageNumber * pageSize).Select(x => new Advert()
            {
                AccountId    = x.AccountId,
                Tags         = x.Tags.Select(c => c.Value).ToList(),
                Reward       = x.Reward,
                CreationDate = x.CreationDate,
                Title        = x.Title,
                Text         = x.Text,
                ImageUrl     = x.AdvertImages.FirstOrDefault().Url,
                Account      = new Account()
                {
                    FirstName   = x.Account.FirstName,
                    LastName    = x.Account.LastName,
                    PhoneNumber = x.Account.AccountPhoneNumbers.FirstOrDefault(c => c.IsPrimary).PhoneNumber
                }
            }).Take(pageSize);

            return(mappedAdverts);
        }
 public HttpResponseMessage Get([FromUri] AdvertsFilterRequestModel filters, [FromUri] AdvertsSortRequestModel sortInfo,
                                [FromUri] int pageNumber = 0, [FromUri] int pageSize = 10)
 {
     try
     {
         var result = _advertService.GetAll(filters, sortInfo, pageNumber, pageSize);
         return(Request.CreateResponse(System.Net.HttpStatusCode.OK, result));
     }
     catch (ArgumentNullException exception)
     {
         return(Request.CreateResponse(System.Net.HttpStatusCode.BadRequest, exception.Message));
     }
     catch (Exception exception)
     {
         return(Request.CreateResponse(System.Net.HttpStatusCode.InternalServerError, exception.Message));
     }
 }
Ejemplo n.º 3
0
        private IQueryable <AdvertEntity> FilterAdverts(IQueryable <AdvertEntity> adverts, AdvertsFilterRequestModel filters)
        {
            IQueryable <AdvertEntity> resultQuery = adverts;

            if (!string.IsNullOrWhiteSpace(filters.City))
            {
                resultQuery = adverts.Where(x => x.AdvertAddressDetails.City == filters.City);
            }

            if (filters.CreationDateFromFilter != new DateTime())
            {
                resultQuery = adverts.Where(x => x.CreationDate >= filters.CreationDateFromFilter);
            }

            if (filters.CreationDateToFilter != new DateTime())
            {
                resultQuery = adverts.Where(x => x.CreationDate <= filters.CreationDateToFilter);
            }

            if (filters.RewardToFilter != 0)
            {
                resultQuery = adverts.Where(x => x.Reward <= filters.RewardToFilter);
            }

            if (filters.RewardFromFilter != 0)
            {
                resultQuery = adverts.Where(x => x.Reward >= filters.RewardFromFilter);
            }

            return(resultQuery);
        }