/// <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)); }