예제 #1
0
        public string Parse(ProductListTemplateData template, Product item)
        {
            if (template == null)
            {
                return(string.Empty);
            }

            string output = template.ProductTemplate;

            if (string.IsNullOrWhiteSpace(output))
            {
                return(string.Empty);
            }

            MediaFile image = _imageProcessor.GetImage(item.DisplayImageUrl);

            output = ImageRegex.Replace(output,
                                        _urlHelper.ToAbsolute(_fileService.GetFileLocation(image, new Size {
                Width = 150, Height = 150
            })));
            output = NameRegex.Replace(output, item.Name ?? string.Empty);
            output = LinkRegex.Replace(output, item.AbsoluteUrl);
            output = PriceRegex.Replace(output, GetPrice(_productPricingMethod.GetDisplayPrice(item)));
            output = OldPriceRegex.Replace(output, GetPrice(_productPricingMethod.GetDisplayPreviousPrice(item)));
            return(output);
        }
        private string ParseRow(ProductListTemplateData templateData, IEnumerable <Product> rowProducts)
        {
            string rowOutput = rowProducts.Aggregate(templateData.ProductRowTemplate,
                                                     (current, product) =>
                                                     ProductRegex.Replace(current, replace => _productParser.Parse(templateData, product), 1));

            // Blank any remaining shortcodes as we may have ran out of products
            rowOutput = ProductRegex.Replace(rowOutput, string.Empty);

            return(rowOutput);
        }
        private string ParseRows(ProductListTemplateData templateData, Product[] products)
        {
            int    numProductsInRow = ProductRegex.Matches(templateData.ProductRowTemplate).Count;
            string output           = string.Empty;

            for (int i = 0; i < products.Length; i += numProductsInRow)
            {
                output += ParseRow(templateData, products.Skip(i).Take(numProductsInRow));
            }

            return(output);
        }
 public RedirectToRouteResult Edit_POST(ProductListTemplateData data)
 {
     _templateDataAdminService.Update(data);
     return(RedirectToAction("Edit", "NewsletterTemplate", new { id = data.NewsletterTemplate.Id }));
 }
 public ViewResult Edit(ProductListTemplateData data)
 {
     return(View(data));
 }