protected override void Render(StringBuilder sb, MerchantTribeApplication app, dynamic viewBag, ProductListViewModel model, bool showPagers, int columns) { var profiler = MiniProfiler.Current; using (profiler.Step("Rendering Grid...")) { var preppedItems = PrepProducts(model.Items, columns, app); var pagerRenderer = new code.TemplateEngine.TagHandlers.Pager(); var productRenderer = new code.TemplateEngine.TagHandlers.SingleProduct(); if (showPagers == true) { pagerRenderer.Render(sb, model.PagerData); } foreach (var item in preppedItems) { productRenderer.RenderModel(sb, item, app); } if (showPagers == true) { pagerRenderer.Render(sb, model.PagerData); } } }
protected override void Render(StringBuilder sb, MerchantTribeApplication app, dynamic viewBag, ProductListViewModel model, bool showPagers, int columns) { var profiler = MiniProfiler.Current; using (profiler.Step("Rendering Detailed List...")) { var preppedItems = base.PrepProducts(model.Items, columns, app); var pagerRenderer = new code.TemplateEngine.TagHandlers.Pager(); string buttonUrlDetails = app.ThemeManager().ButtonUrl("View", app.IsCurrentRequestSecure()); string buttonUrlAddToCart = app.ThemeManager().ButtonUrl("AddToCart", app.IsCurrentRequestSecure()); if (showPagers == true) { pagerRenderer.Render(sb, model.PagerData); } foreach (var item in preppedItems) { RenderSingleModel(sb, item, app, buttonUrlDetails, buttonUrlAddToCart); } if (showPagers == true) { pagerRenderer.Render(sb, model.PagerData); } } }
// // GET: /ContentBlocks/LastProductsViewed/ public ActionResult Index(ContentBlock block) { ProductListViewModel model = new ProductListViewModel(); model.Title = SiteTerms.GetTerm(SiteTermIds.RecentlyViewedItems); model.Items = LoadItems(); return View(model); }
public string Render(MerchantTribe.Commerce.MerchantTribeApplication app, dynamic viewBag, MerchantTribe.Commerce.Content.ContentBlock block) { ProductListViewModel model = new ProductListViewModel(); model.Title = SiteTerms.GetTerm(SiteTermIds.RecentlyViewedItems); model.Items = LoadItems(app); return RenderModel(model, app); }
protected override void Render(StringBuilder sb, MerchantTribeApplication app, dynamic viewBag, ProductListViewModel model, bool showPagers, int columns) { var profiler = MiniProfiler.Current; using (profiler.Step("Rendering Bulk Order List...")) { var preppedItems = base.PrepProducts(model.Items, columns, app); var pagerRenderer = new code.TemplateEngine.TagHandlers.Pager(); if (showPagers == true) { pagerRenderer.Render(sb, model.PagerData); } if (showPagers == true) { pagerRenderer.Render(sb, model.PagerData); } sb.Append("<form action=\"" + app.CurrentRequestContext.UrlHelper.Content("~/cart/bulkadd") + "\" method=\"post\">"); sb.Append("<table width=\"100%\">"); foreach (var item in preppedItems) { sb.Append("<tr>"); sb.Append("<td class=\"checkbox\">"); if (item.Item.HasOptions()) { sb.Append(" "); } else { sb.Append("<input type=\"checkbox\" name=\"bulkitem\" value=\"" + item.Item.Bvin + "\" />"); } sb.Append("</td>"); sb.Append("<td class=\"records\">"); RenderSingleModel(sb, item, app); sb.Append("</td>"); sb.Append("</tr>"); } sb.Append("</table>"); string buttonUrlAddToCart = app.ThemeManager().ButtonUrl("AddToCart", app.IsCurrentRequestSecure()); sb.Append("<input type=\"image\" name=\"addtocart\" src=\"" + buttonUrlAddToCart + "\" alt=\"Add To Cart\" />"); sb.Append("</form>"); } }
public string RenderModel(ProductListViewModel model, MerchantTribeApplication app) { StringBuilder sb = new StringBuilder(); var productRenderer = new code.TemplateEngine.TagHandlers.SingleProduct(); sb.Append("<div class=\"productgrid\">"); sb.Append("<div class=\"decoratedblock\">"); sb.Append("<h4>" + HttpUtility.HtmlEncode(model.Title) + "</h4>"); foreach (var p in model.Items) { sb.Append(productRenderer.RenderToString(p, app)); } sb.Append("<div class=\"clear\"></div>"); sb.Append("</div>"); sb.Append("</div>"); return sb.ToString(); }
public void Process(StringBuilder output, MerchantTribe.Commerce.MerchantTribeApplication app, dynamic viewBag, ITagProvider tagProvider, ParsedTag tag, string innerContents) { var profiler = MiniProfiler.Current; bool showPagers = false; int columns = 3; var model = new ProductListViewModel(); using (profiler.Step("Attribute Gathering")) { model.PagerData.PageSize = tag.GetSafeAttributeAsInteger("pagesize"); if (model.PagerData.PageSize < 1) model.PagerData.PageSize = 9; columns = tag.GetSafeAttributeAsInteger("columns"); if (columns < 1) columns = 3; if (tag.GetSafeAttribute("page") == "all") { model.PagerData.CurrentPage = WebAppSettings.ViewAllPagesConstant; } else { model.PagerData.CurrentPage = tag.GetSafeAttributeAsInteger("page"); } if (model.PagerData.CurrentPage < 1 && model.PagerData.CurrentPage != WebAppSettings.ViewAllPagesConstant) { model.PagerData.CurrentPage = GetPageFromRequest(app); } model.PagerData.TotalItems = 0; showPagers = tag.GetSafeAttributeAsBoolean("showpager"); } string source = tag.GetSafeAttribute("source"); switch (source.Trim().ToLowerInvariant()) { case "featured": model.Items = app.CatalogServices.Products.FindFeatured(1, model.PagerData.PageSize); showPagers = false; break; case "manual": string manualProducts = tag.GetSafeAttribute("products"); List<string> bvins = manualProducts.Split(',').ToList(); model.Items = app.CatalogServices.Products.FindMany(bvins); string manualSkus = tag.GetSafeAttribute("skus"); List<string> skus = manualSkus.Split(',').ToList(); model.Items.AddRange(app.CatalogServices.Products.FindManySkus(skus)); showPagers = false; break; default: using (profiler.Step("Pull Products for Category")) { var cat = app.CurrentRequestContext.CurrentCategory; string categoryId = tag.GetSafeAttribute("categoryid"); using (profiler.Step("Checking for non-current category on grid")) { if (categoryId.Trim().Length < 1 || categoryId.Trim().ToLowerInvariant() == "current") { if (app.CurrentRequestContext.CurrentCategory != null) { categoryId = app.CurrentRequestContext.CurrentCategory.Bvin; cat = app.CatalogServices.Categories.Find(categoryId); } } } using (profiler.Step("Build Data for Render")) { int totalItems = 0; using (profiler.Step("Get the Products")) { // View All Support if (model.PagerData.CurrentPage == WebAppSettings.ViewAllPagesConstant) { model.PagerData.CurrentPage = 1; model.PagerData.PageSize = 250; // int.MaxValue; - Use a reasonable limit here instead of max int. } model.Items = app.CatalogServices.FindProductForCategoryWithSort( categoryId, CategorySortOrder.ManualOrder, false, model.PagerData.CurrentPage, model.PagerData.PageSize, ref totalItems); model.PagerData.TotalItems = totalItems; } using (profiler.Step("Build the Pager Urls")) { model.PagerData.PagerUrlFormat = UrlRewriter.BuildUrlForCategory(new CategorySnapshot(cat), app.CurrentRequestContext.RoutingContext, "{0}"); model.PagerData.PagerUrlFormatFirst = UrlRewriter.BuildUrlForCategory(new CategorySnapshot(cat), app.CurrentRequestContext.RoutingContext); } } } break; } Render(output, app, viewBag, model, showPagers, columns); }
protected abstract void Render(StringBuilder sb, MerchantTribeApplication app, dynamic viewBag, ProductListViewModel model, bool showPagers, int columns);