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);
 }
Exemplo n.º 2
0
 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);
 }