@inherits Dynamicweb.Rendering.RazorTemplateBase> @using Dynamicweb.Core @using System @using System.Web @using System.Collections.Generic @using Dynamicweb.Rapido.Blocks @{ BlocksPage customProductBlocks = BlocksPage.GetBlockPage("Product"); var selectedDownloadCategories = Pageview.AreaSettings.GetItem("ProductPage").GetList("DownloadAssets").SelectedValues; Block aggregatedAssets = new Block() { Name = "All assets", Id = "AggregatedAssets", SortId = 60, Template = RenderAggregatedAssets(selectedDownloadCategories), Design = new Design { Size = "12", RenderType = RenderType.Column, HidePadding = true } }; customProductBlocks.Add("Tabs", aggregatedAssets); } @helper RenderAggregatedAssets(IEnumerable selectedDownloadCategories) { } @helper RenderAssetCategories(LoopItem variant, IEnumerable selectedDownloadCategories) { List downloadsFromAssets = variant.GetLoop("ImageCategories").Where(x => selectedDownloadCategories.Contains(x.GetString("Category.Id"))).ToList(); if (!string.IsNullOrEmpty(selectedDownloadCategories.ToString()) && downloadsFromAssets.Count > 0) { var counter = 0;
    @foreach (LoopItem category in downloadsFromAssets) {
  • @category.GetString("Category.Name")
  • @RenderAssets(category) counter++; }
} else {
  • No asset categories
} } @helper RenderAssets(LoopItem category) { var assets = category.GetLoop("Category.Images"); if (assets.Count > 0) {
    @foreach (LoopItem asset in assets) { var value = asset.GetString("Ecom:Product:Detail.Image.Clean"); FileInfo info = new FileInfo(Dynamicweb.Core.SystemInformation.MapPath(value)); if (info.Exists) {
  • @Path.GetFileName(value)
  • } }
} else {

@Translate("No assets")

} }