/// <summary>
        /// Flyout Facets
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="containerSize"></param>
        /// <returns></returns>
        public ActionResult FlyoutFacets(EntityModel entity, int containerSize = 0)
        {
            SetupViewData(entity, containerSize);
            FacetsWidget widget = (FacetsWidget)entity;

            if (widget.CategoryReference != null)
            {
                widget.CategoryReference.Category = ResolveCategory(widget.CategoryReference);
                if (widget.CategoryReference.Category != null)
                {
                    var cachedData = this.GetCachedFlyoutData(widget.CategoryReference.Category.Id);
                    if (cachedData == null)
                    {
                        var queryResult = ECommerceContext.Client.QueryService.Query(
                            new Api.Model.Query
                        {
                            Category = widget.CategoryReference.Category,
                            ViewType = Api.Model.ViewType.FLYOUT
                        });

                        cachedData = new FlyoutData
                        {
                            FacetGroups = queryResult.FacetGroups.ToList(),
                            Promotions  = queryResult.Promotions.ToList()
                        };
                        this.CacheFlyoutData(widget.CategoryReference.Category.Id, cachedData);
                    }
                    widget.FacetGroups       = cachedData.FacetGroups;
                    widget.RelatedPromotions = cachedData.Promotions;
                }
            }

            return(View(entity.MvcData.ViewName, entity));
        }
        /// <summary>
        /// Facets
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="containerSize"></param>
        /// <returns></returns>
        public ActionResult Facets(EntityModel entity, int containerSize = 0)
        {
            SetupViewData(entity, containerSize);
            FacetsWidget widget = (FacetsWidget)entity;

            // Get facets
            //
            IProductQueryResult queryResult = null;

            if (widget.CategoryReference != null)
            {
                var category = ResolveCategory(widget.CategoryReference);
                queryResult = ECommerceContext.Client.QueryService.Query(new Api.Model.Query {
                    Category = category
                });
            }
            else
            {
                // Use category from page controller
                //
                queryResult = (IProductQueryResult)ECommerceContext.Get(ECommerceContext.QUERY_RESULT);
            }
            if (queryResult == null)
            {
                queryResult = GetResultFromPageTemplate();
            }
            widget.FacetGroups = queryResult.FacetGroups.ToList();

            return(View(entity.MvcData.ViewName, entity));
        }