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