public ActionResult Index(IComponentPresentation componentPresentation) { string title = componentPresentation.Component.Schema.Title; IComponent component = componentPresentation.Component; FeaturedItems featuredItems = new FeaturedItems(); if (title == "Generic.ComponentGroup") { featuredItems.Title = component.Fields.ContainsKey("title") ? component.Fields["title"].Value : string.Empty; IList<IComponent> linkedComponentValues = component.Fields["items"].LinkedComponentValues; featuredItems.Components = new List<Component>(); if (linkedComponentValues.Count > 0) { string secondid = "fh_secondid={0}-16_tcm_{1}-{2}-32"; string str2 = string.Join("&", (from c in linkedComponentValues select string.Format(secondid, c.Id.Replace(":", "_"), WebConfiguration.Current.PublicationId, SchemaTemplate.Instance.Template[c.Schema.Title])).ToArray<string>()); DD4TComponents components = new DD4TComponents(this.Logger); this.Logger.InfoFormat("Featured static items query: {0}", new object[] { str2 }); featuredItems.Components = components.GetComponents(str2, true); } } else if (title == "Crafts.ContentByFacet") { Query query = new Query(); component.Fields.ToList<KeyValuePair<string, IField>>().ForEach(delegate (KeyValuePair<string, IField> f) { if (f.Key == "title") { featuredItems.Title = f.Value.Value; } else if ((f.Key == "facets") && (f.Value.LinkedComponentValues.Count > 0)) { int publicationId = this._settings.PublicationId; IFieldSet fieldSet = (from lcv in f.Value.LinkedComponentValues[0].Fields where lcv.Key != "promote" select lcv).ToFieldSet(); query.ParseQuery(fieldSet, publicationId, 6); DD4TComponents components = new DD4TComponents(this.Logger); this.Logger.InfoFormat("Featured items query: {0}", new object[] { query.toString() }); featuredItems.Components = components.GetComponents(query.toString(), true); } }); } else { return base.View(); } string featureComponentId = string.Empty; try { featureComponentId = componentPresentation.Page.ComponentPresentations[0].Component.Id; } catch { featureComponentId = string.Empty; } featuredItems.Components = (from c in featuredItems.Components where c.Id != featureComponentId select c).ToList<Component>(); return base.View(featuredItems); }
public ActionResult Index(IComponentPresentation componentPresentation) { string str2; Stopwatch stopwatch = new Stopwatch(); if (this.Logger.IsDebugEnabled) { stopwatch.Start(); } ((dynamic) base.ViewBag).PodGenericSpan = "span4"; string str = base.Request.QueryString["fh_params"]; Query query = null; HomePageBannerContent model = new HomePageBannerContent { Banner = componentPresentation }; if (!string.IsNullOrEmpty(str)) { query = new Query(); query.ParseQuery(str); } else { Location location = new Location(this.DefaultLocation); Criterion criterion = HomePageTabsConfig.ToCriteria(this._settings.PublicationId); location.addCriterion(criterion); query = new Query(location); } query.setView(com.fredhopper.lang.query.ViewType.LISTER); int viewsize = Convert.ToInt32(WebConfiguration.Current.HomepageItemsPerPage); viewsize = FacetedContentHelper.AssertCappedViewSize(viewsize); query.setListViewSize(viewsize); query.setSortingBy(WebConfiguration.Current.HomepageSort); DD4TComponents components = new DD4TComponents(this.Logger); if (this.Logger.IsDebugEnabled) { stopwatch.Stop(); str2 = stopwatch.Elapsed.ToString(); this.Logger.DebugFormat("HomeController Index time elapsed 1:" + str2, new object[0]); } model.FredHopperComponents = components.GetComponents(query.toString(), true); model.Tabs = HomePageTabsConfig.ToSelectList(query.toString()); IList<IComponentPresentation> ctaList = (from m in componentPresentation.Page.ComponentPresentations where m.ComponentTemplate.Id != componentPresentation.ComponentTemplate.Id select m).ToList<IComponentPresentation>(); model.FredHopperComponents = FacetedContentHelper.InjectCTAComponents(model.FredHopperComponents, ctaList, false, false); if (this.Logger.IsDebugEnabled) { stopwatch.Stop(); str2 = stopwatch.Elapsed.ToString(); this.Logger.DebugFormat("HomeController Index time elapsed 2:" + str2, new object[0]); } return base.View(model); }
public static MvcHtmlString CloseLink(this HtmlHelper helper) { TagBuilder builder = new TagBuilder("a"); string absolutePath = helper.ViewContext.HttpContext.Request.Url.AbsolutePath; builder.MergeAttribute("class", "icon close"); builder.SetInnerText(helper.GetResource("RemoveFilter")); string facet = helper.ViewContext.RouteData.Values.GetLevel1BrandFacet(); string facetValue = helper.ViewContext.RouteData.Values.GetLevel1BrandFacetValueDelimeted(); if (!string.IsNullOrEmpty(helper.ViewContext.HttpContext.Request["fh_params"])) { Query query = new Query(); query.ParseQuery(helper.ViewContext.HttpContext.Request["fh_params"]); Location location = new Location(FredHopperExtensions.RemoveFacetValues(query.getLocation().toString(), facet, facetValue)); query.setLocation(location); absolutePath = absolutePath + query.ToFhParams(); } else { absolutePath = absolutePath + "?clear=true"; } UrlHelper helper2 = new UrlHelper(helper.ViewContext.RequestContext); builder.MergeAttribute("href", helper2.Content(absolutePath.AddApplicationRoot())); return MvcHtmlString.Create(builder.ToString()); }
public static FacetItem getFacetItem(filtersection fs, string fh_location, filter f) { FacetItem item = new FacetItem { FHId = fs.value.Value, NumItems = fs.nr, Selected = fs.selected }; link link = fs.link; item.Text = link.name; Query query = new Query(); query.ParseQuery(link.urlparams); query.removeListStartIndex(); string urlParams = string.Empty; if (fs.selected) { string str2 = query.getLocation().getLastCriterion().toString(); string facetValue = str2.Substring(str2.IndexOf('{') + 1).Replace("}", ""); urlParams = RemoveFacetValues(fh_location, query.getLocation().getLastCriterion().getAttributeName(), facetValue); } else { Location location = new Location(fh_location); location.addCriterion(query.getLocation().getLastCriterion()); urlParams = location.toString(); if ((f.customfields != null) && (f.customfields.SingleOrDefault<customfield>(c => (c.name == "RefineMethod")).Value == "CombineFacets")) { urlParams = CreateOrCondition(urlParams); } } Location location2 = new Location(urlParams); query.setLocation(location2); item.Value = query.ToFhParams(); return item; }