예제 #1
0
 private IEnumerable <TrainerCard> Filter(CardFilterData filterData, IEnumerable <TrainerCard> cards)
 {
     cards = cards.Where(card => ApplyTrainerCardFilters(filterData)
                         .IsSatisfiedBy(card))
             .ToList();
     return(cards);
 }
예제 #2
0
        private PagedClubCardsDTO GetClubCards(
            int pageNumber, int pageSize, IEnumerable <ClubCard> cards, CardFilterData filterData)
        {
            IEnumerable <ClubCard> clubCards = cards.OrderByDescending(u => u.PurchaseDate);

            clubCards = Filter(filterData, clubCards);
            var result = GetPagedClubCards(clubCards, pageNumber, pageSize);

            return(result);
        }
예제 #3
0
        private PagedTrainerCardsDTO GetTrainerCards(
            int pageNumber, int pageSize, IEnumerable <TrainerCard> cards, CardFilterData filterData)
        {
            IEnumerable <TrainerCard> trainerCards = cards.OrderByDescending(u => u.PurchaseDate);

            trainerCards = Filter(filterData, trainerCards);
            var result = GetPagedTrainerCards(trainerCards, pageNumber, pageSize);

            return(result);
        }
예제 #4
0
        public async Task <PagedClubCardsDTO> GetClubClubCards(
            int pageNumber,
            int pageSize,
            int clubId,
            CardFilterData filterData)
        {
            var cards = await _cardRepository.GetClubClubCards(clubId);

            var result = GetClubCards(pageNumber, pageSize, cards, filterData);

            return(result);
        }
예제 #5
0
        public async Task <PagedTrainerCardsDTO> GetTrainerTrainerCards(
            int pageNumber,
            int pageSize,
            int trainerId,
            CardFilterData filterData)
        {
            var cards = await _cardRepository.GetTrainerTrainerCards(trainerId);

            var result = GetTrainerCards(pageNumber, pageSize, cards, filterData);

            return(result);
        }
예제 #6
0
 public async Task <ActionResult <PagedClubCardsDTO> > GetUserClubCards(
     [FromQuery] CardFilterData filterData,
     [FromQuery] string userId,
     [FromQuery] int pageNumber = 1,
     [FromQuery] int pageSize   = 5)
 {
     try
     {
         return(Ok(await _cardService.GetUserClubCards(pageNumber, pageSize, userId, filterData)));
     }
     catch (Exception exception)
     {
         return(BadRequest(exception.Message));
     }
 }
예제 #7
0
 private ISpecification <TrainerCard> ApplyTrainerCardFilters(CardFilterData filterData)
 {
     return(new TrainerCardMatchesName(filterData.Name)
            .And(new TrainerCardMatchesKeywords(filterData.Keywords))
            .And(new TrainerCardIsActive(filterData.IsActive)));
 }