public async Task <IPagedList <Model.ReviewRatings.ReviewRating> > GetReviewRatingsAsync(string id)
        {
            var cacheKey = CacheKey.With(GetType(), nameof(GetReviewRatingsAsync), id);

            return(await _memoryCache.GetOrCreateExclusiveAsync(cacheKey, async (cacheEntry) =>
            {
                cacheEntry.AddExpirationToken(ReviewRatingCacheRegion.CreateChangeToken());
                cacheEntry.AddExpirationToken(_changesWatcher.CreateChangeToken());

                var result = await _customerReviewsApi.GetReviewRatingsAsync(id);
                return new StaticPagedList <Model.ReviewRatings.ReviewRating>(result.Results.Select(x => x.ToReviewRating()),
                                                                              1, 20, result.TotalCount.Value);
            }));
        }
        public async Task RateReviewAsync(Model.ReviewRatings.ReviewRating rating)
        {
            await _customerReviewsApi.RateAsync(rating.FromDto());

            ReviewRatingCacheRegion.ExpireRegion();
        }