Beispiel #1
0
        public async Task <PagedList <DAppOffer> > GetAllDAppOffers(GetDAppOfferModel getDAppOfferModel)
        {
            // Retrieve the collection as queryable
            var offers = _dAppOffers.AsQueryable().OrderBy(on => on.LiskPerMonth).AsQueryable();

            // Apply filters
            if (getDAppOfferModel.MinReward != null)
            {
                offers = offers.Where(o => o.LiskPerMonth >= getDAppOfferModel.MinReward);
            }

            if (getDAppOfferModel.MaxReward != null)
            {
                offers = offers.Where(o => o.LiskPerMonth <= getDAppOfferModel.MaxReward);
            }

            if (!string.IsNullOrEmpty(getDAppOfferModel.SearchQuery))
            {
                offers = offers.Where(o => o.Title.ToLower().Contains(getDAppOfferModel.SearchQuery.ToLower()));
            }

            if (!string.IsNullOrEmpty(getDAppOfferModel.RegionQuery))
            {
                offers = offers.Where(o => o.Region.ToLower().Contains(getDAppOfferModel.RegionQuery.ToLower()));
            }

            return(await PagedList <DAppOffer> .ToPagedList(offers, getDAppOfferModel.PageNumber, getDAppOfferModel.PageSize));
        }
Beispiel #2
0
        public async Task <IActionResult> Get([FromQuery] GetDAppOfferModel getDAppOfferModel)
        {
            try
            {
                // gets offers that comply with the filters in the getOfferModel
                var offers = await _dAppService.GetOffers(getDAppOfferModel);

                // make headerdata for the frontend
                var metadata = new
                {
                    offers.TotalCount,
                    offers.PageSize,
                    offers.CurrentPage,
                    offers.TotalPages,
                    offers.HasNext,
                    offers.HasPrevious
                };

                Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata));

                return(Ok(offers));
            }
            catch (Exception ex)
            {
                return(BadRequest(new { message = ex.Message }));
            }
        }
Beispiel #3
0
 public async Task <PagedList <DAppOffer> > GetOffers(GetDAppOfferModel getDAppOfferModel)
 {
     return(await _dAppRepository.GetAllDAppOffers(getDAppOfferModel));
 }