protected override IQuery <Rating> ApplyWhereClause(IQuery <Rating> query, RatingFilterDTO filter) { var predicates = new List <IPredicate>(); if (filter.SearchedRatedUsersId != null && filter.SearchedRatedUsersId.Length != 0) { var predicate = new List <IPredicate>(filter.SearchedRatedUsersId .Select(searchedUserId => new SimplePredicate(nameof(Rating.RatedUserId), ValueComparingOperator.Equal, searchedUserId))); predicates.Add(new CompositePredicate(predicate)); } if (filter.SearchedScore.HasValue) { predicates.Add(new SimplePredicate(nameof(Rating.Score), ValueComparingOperator.GreaterThanOrEqual, filter.SearchedScore.Value)); } return(query.Where(new CompositePredicate(predicates))); }
public async Task <QueryResultDTO <RatingDTO, RatingFilterDTO> > ListRatingsAsync(RatingFilterDTO filter) { using (UnitOfWorkProvider.Create()) { return(await ratingService.ListRatingsAsync(filter)); } }