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);
                }
            }
        }
        public SingleProductViewModel(Product p, MerchantTribeApplication mtapp)
        {
            var profiler = MiniProfiler.Current;

            using (profiler.Step("Price Product " + p.ProductName))
            {
                this.UserPrice = mtapp.PriceProduct(p, mtapp.CurrentCustomer, null, mtapp.CurrentlyActiveSales);
            }
            this.IsFirstItem = false;
            this.IsLastItem = false;
            this.Item = p;
            using (profiler.Step("Image Url Product" + p.ProductName))
            {
                this.ImageUrl = MerchantTribe.Commerce.Storage.DiskStorage.ProductImageUrlSmall(
                    mtapp,
                    p.Bvin,
                    p.ImageFileSmall,
                    mtapp.IsCurrentRequestSecure());
            }
            using (profiler.Step("Product Link " + p.ProductName))
            {
                this.ProductLink = UrlRewriter.BuildUrlForProduct(p,
                                                mtapp.CurrentRequestContext.RoutingContext,
                                                string.Empty);
            }
        }
        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("&nbsp;");
                    }
                    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>");

            }
        }
 private string ResolveUrl(string raw, MerchantTribeApplication app)
 {
     if (raw.Trim().ToLowerInvariant().StartsWith("http")) return raw;
     return MerchantTribe.Commerce.Storage.DiskStorage.AssetUrl(
         app, app.CurrentStore.Settings.ThemeId,
         raw, app.IsCurrentRequestSecure());
 }
示例#5
0
        private List<SingleCategoryViewModel> PrepSubCategories(List<CategorySnapshot> snaps, MerchantTribeApplication app)
        {
            List<SingleCategoryViewModel> result = new List<SingleCategoryViewModel>();

            int columnCount = 1;

            foreach (CategorySnapshot snap in snaps)
            {
                SingleCategoryViewModel model = new SingleCategoryViewModel();

                model.LinkUrl = UrlRewriter.BuildUrlForCategory(snap,
                                                                app.CurrentRequestContext.RoutingContext);
                model.IconUrl = MerchantTribe.Commerce.Storage.DiskStorage.CategoryIconUrl(
                                                                app,
                                                                snap.Bvin,
                                                                snap.ImageUrl,
                                                                app.IsCurrentRequestSecure());
                model.AltText = snap.Name;
                model.Name = snap.Name;


                bool isLastInRow = false;
                bool isFirstInRow = false;
                if ((columnCount == 1))
                {
                    isFirstInRow = true;
                }

                if ((columnCount == 3))
                {
                    isLastInRow = true;
                    columnCount = 1;
                }
                else
                {
                    columnCount += 1;
                }

                model.IsFirstItem = isFirstInRow;
                model.IsLastItem = isLastInRow;

                result.Add(model);
            }

            return result;
        }