public GetFeaturedProductsResponse GetFeaturedProducts()
        {
            var response = new GetFeaturedProductsResponse();

            response.Products = _presentationRepository.FindByType<FeaturedProductDto>();

            return response;
        }
        public GetFeaturedProductsResponse GetFeaturedProducts()
        {
            GetFeaturedProductsResponse response = new GetFeaturedProductsResponse();

            Query productQuery = new Query();

            productQuery.OrderByProperty = new OrderByClause() { Desc = true, PropertyName = PropertyNameHelper.ResolvePropertyName<ProductTitle>(pt => pt.Price) };

            response.Products = _productTitleRepository.FindBy(productQuery, 0, 6).ConvertToProductViews();

            return response;
        }
        public GetFeaturedProductsResponse GetFeaturedProducts()
        {
            lock (_getTopSellingProductsLock)
            {
                var response = new GetFeaturedProductsResponse();
                var productViews = _cachStorage.Retrieve<IEnumerable<FeaturedProductDto>>(CacheKeys.TopSellingProducts.ToString());

                if (productViews == null)
                {
                    response = _realProductCatalogueService.GetFeaturedProducts();
                    _cachStorage.Store(CacheKeys.TopSellingProducts.ToString(), response.Products);
                }
                else
                {
                    response.Products = productViews;
                }

                return response;
            }
        }