public Task <string[]> GetProductIdsOfModifiedReviewsAsync(ChangedReviewsQuery criteria)
        {
            var cacheKey = CacheKey.With(GetType(), nameof(GetProductIdsOfModifiedReviewsAsync), criteria.ModifiedDate.ToString("s"));

            return(_platformMemoryCache.GetOrCreateExclusiveAsync(cacheKey, async(cacheEntry) =>
            {
                cacheEntry.AddExpirationToken(GenericCachingRegion <CustomerReview> .CreateChangeToken());
                using (var repository = _repositoryFactory())
                {
                    var ids = await((ICustomerReviewRepository)repository).CustomerReviews
                              .Where(r => r.ModifiedDate >= criteria.ModifiedDate)
                              .GroupBy(r => r.ProductId)
                              .Select(x => x.Key)
                              .ToArrayAsync();
                    return ids;
                }
            }));
        }
Example #2
0
        public async Task <ActionResult <string[]> > GetProductIdsOfModifiedReviews([FromBody] ChangedReviewsQuery query)
        {
            var productIds = await((ICustomerReviewSearchService)_customerReviewSearchService).GetProductIdsOfModifiedReviewsAsync(query);

            return(Ok(productIds));
        }