Exception in template (Designs\Nordenta\eCom/Product/Product.cshtml): System.ArgumentException: An item with the same key has already been added.
   at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
   at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)
   at Dynamicweb.Rendering.Translation.Source.GetTranslationSource(String designName, String moduleName, String cultureName)
   at Dynamicweb.Rendering.RazorTemplateBase`1.Translate(String text, String defaultValue, String cultureName)
   at Dynamicweb.Rendering.RazorTemplateBase`1.Translate(String text, String defaultValue)
   at CompiledRazorTemplates.Dynamic.beabcecdafddee.Execute()
   at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context)
   at RazorEngine.Templating.TemplateService.Run(ITemplate template, DynamicViewBag viewBag)
   at RazorEngine.Templating.TemplateService.Parse(String razorTemplate, Object model, DynamicViewBag viewBag, String cacheName)
   at RazorEngine.Razor.Parse[T](String razorTemplate, T model, String cacheName)
   at Dynamicweb.Rendering.Template.Output()
@inherits RazorTemplateBase<RazorTemplateModel<Template>> @using Dynamicweb.Rendering; @using System; @using LicScadenta.CustomModules.Helpers; @using LicScadenta.CustomModules.Helper; @{ var productName = GetString("Ecom:Product.Name"); var productId = GetString("Ecom:Product.ID"); var replacedProduct = GetBoolean("Ecom:Product.ReplacedProduct"); var replacedProductCss = replacedProduct ? "fade-object" : ""; var productUrl = replacedProduct ? "default.aspx?id=" + GetValue("Ecom:Product:Page.ID") + "&productid=" + GetString("Ecom:Product:Field.ReplacementProductId") : GetValue("Ecom:Product.Link.Clean"); var description = GetString("Ecom:Product:Field.ExtDescription.Value"); var metaDescription = GetString("Ecom:Product.MetaDescription"); var orderLimit = new OrderLimit(productId); var colliOrderLimit = new OrderLimit(productId, GetInteger("Ecom:Product:Field.MaxColliQuantity")); } @if (string.IsNullOrEmpty(metaDescription)) { @SnippetStart("MetaDescription") if (description.Length > 165) { var metaDescriptionEndIndex = description.Substring(165, description.Length - 165).IndexOf(' ') + 165; metaDescription = description.Substring(0, metaDescriptionEndIndex); } else { metaDescription = description; } Dynamicweb.Frontend.PageView.Current().Meta.Add("description", metaDescription); @SnippetEnd("MetaDescription") } <main class="content" itemscope itemtype="https://schema.org/Product"> <meta itemprop="mpn" content="@GetValue("Ecom:Product.Number")" /> <meta itemprop="sku" content="@GetValue("Ecom:Product.Number")" /> <meta itemprop="description" content="@description" /> <div class="product-hero"> <h1 itemprop="name">@GetValue("Ecom:Product.Name")</h1> <h3 itemprop="brand">@GetValue("Ecom:Product:Field.ManufacturerField.Value.Clean")</h3> @if (!GetString("AccessUser_AllowQuantityDisc").Contains("no")) { if (!string.IsNullOrWhiteSpace(GetString("Ecom:Product:Field.Price1.Value.Clean")) || !string.IsNullOrWhiteSpace(GetString("Ecom:Product:Field.Price2.Value.Clean")) || GetString("Ecom:Product:Field.CustomerQtyDiscount") == "yes") { <div class="product-hero__discount-label"> <h5>@Translate("Quantity discount")</h5> </div> } } @if (!string.IsNullOrWhiteSpace(GetString("Ecom:Product:Field.Discount"))) { <div class="product-hero__discount-label"> <h5>@Translate("On sale")</h5> </div> } <!--image loop - hero --> <div class="slider slider-hero" id="js-product-hero__image"> @PrintLargeImages(GetString("Ecom:Product.ID"), productName) </div> <!--image loop - thumbs --> <div class="slider slider-thumbs" id="js-product-hero__image-thumbs"> @PrintSmallImages(GetString("Ecom:Product.ID"), productName) </div> </div> @{ var currencyCode = GetString("Ecom:Product.Currency.Code"); var dwCurrency = new Dynamicweb.eCommerce.International.Currency(currencyCode); var paragraph = Pageview.CurrentParagraph; if (paragraph != null && paragraph.ItemType != null && paragraph.ItemId != null) { var item = Dynamicweb.Content.Items.ItemManager.Storage.GetById(paragraph.ItemType, paragraph.ItemId); var almindelig = item["Almindelig"]; var ekspres = item["Ekspres"]; var pris = item["Pris"]; } } @helper PrintLargeImages(string prodid, string altText) { try { for (int imageNo = 1; imageNo < 6; imageNo++) { string imagePath = Helper.ProductImage(prodid, imageNo); if (!string.IsNullOrEmpty(imagePath)) { string structuredDataImage = ""; <div> @if (imageNo == 1) { string host = System.Web.HttpContext.Current.Request.Url.Host; string scheme = System.Web.HttpContext.Current.Request.Url.Scheme; structuredDataImage = scheme + "://" + host + structuredDataImage + imagePath; <meta itemprop="image" content="@structuredDataImage" /> } <img src="/Admin/Public/GetImage.ashx?Image=@imagePath&Format=jpg&Width=574&Height=500&Crop=5" alt="@altText" /> </div> } } } catch { } } @helper PrintSmallImages(string prodid, string altText) { for (int imageNo = 1; imageNo < 6; imageNo++) { string imagePath = Helper.ProductImage(prodid, imageNo); if (!string.IsNullOrEmpty(imagePath)) { <div> <img src="/Admin/Public/GetImage.ashx?Image=@imagePath&Format=jpg&Width=80&Height=80&Crop=5" alt="@altText" /> </div> } } } <section class="carousel-wrapper"> <div> @inherits RazorTemplateBase<RazorTemplateModel<Template>> @using Dynamicweb.eCommerce.Products @using Dynamicweb.Rendering; @using LicScadenta.CustomModules.Helper; @{ var groupId = Pageview.Area.Item["RelatedProductsGroupID"]; } @if (groupId != null) { var productsSql = "SELECT products.* FROM EcomProducts products " + @"INNER JOIN EcomGroupProductRelation groupProductRelations ON products.ProductId = groupProductRelations.GroupProductRelationProductId AND groupProductRelations.GroupProductRelationGroupId = '" + groupId + "' " + "ORDER BY groupProductRelations.GroupProductRelationSorting"; var products = Product.GetProductsBySql(productsSql); <h2>@Translate("Related heading")</h2> <hr /> <div class="carousel-related" data-equalizer> @foreach (var i in products) { var productsPageId = Pageview.Area.Item["ProductsPageId"]; var productLink = "Default.aspx?ID=" + productsPageId + "&GroupID=" + i.PrimaryGroupID + "&ProductID=" + i.Number; var levvarenr = i.GetProductFieldValue("LevVareNr").ToString(); var number = i.Number; var imageString = "/Images/Produkter/"; //var image = string.IsNullOrWhiteSpace(levvarenr) ? imageString + number + "_1.jpg" : imageString + levvarenr + "_1.jpg"; var image = Helper.ProductImage(i.ID, 1); <div> <div class="carousel__item" data-equalizer-watch> <div class="carousel__image"> <a class="carousel_link" href="@productLink" title="@i.Name"> @if (!string.IsNullOrWhiteSpace(i.GetProductFieldValue("Discount").ToString())) { <div class="carousel__item__discount-label"><h5>@Translate("On sale")</h5> </div> } <img src='/Admin/Public/GetImage.ashx?Image=@image&Format=jpg&Width=210&Height=190&Crop=5' alt="@i.Name"/> </a> </div> <div class="carousel__text"> <h6><a class="carousel_link" href="@productLink" title="@i.Name">@i.Name</a></h6> <p>@Translate("Item no") @i.ID</p> @if (Pageview.User.UserID > 0) { <p> @if (!string.IsNullOrWhiteSpace(i.GetProductFieldValue("DefaultCustomerPrice").ToString())) { <div class="item-price-discount"> <span>@i.GetProductFieldValue("DefaultCustomerPrice").ToString()</span><br/> (@i.Price) </div> } else if (!string.IsNullOrWhiteSpace(i.GetProductFieldValue("Discount").ToString()) || i.GetProductFieldValue("CustomerQtyDiscount").ToString() == "yes") { <div class="item-price-discount"> <span>@Translate("Discount") @i.GetProductFieldValue("Discount").ToString()</span><br/> (@i.Price) </div> } else { <div> @i.Price </div> } </p> } </div> </div> </div> } </div> } </div> </section> </main> <aside class="sidebar"> @if (Pageview.User.UserID > 0) { if (GetString("Ecom:Product:Field.Type") != "gift") { <div class="product-add-to-cart"> <div> <p class="product-normal-price">@Translate("Normal price"): <span>@dwCurrency.Format(GetDouble("Ecom:Product:Field.DefaultPrice.Value.Clean"), true)</span></p> <!--Er der en kundespecifik normalpris --> @if (!string.IsNullOrWhiteSpace(GetString("Ecom:Product:Field.DefaultCustomerPrice"))) { <p class="product-normal-price">@Translate("Your normal price"): <span>@dwCurrency.Format(GetDouble("Ecom:Product:Field.DefaultCustomerPrice.Value.Clean"), true)</span></p> } <h3 class="product-price your-price"> @Translate("Your price")<span> @if (!string.IsNullOrWhiteSpace(GetString("Ecom:Product:Field.Discount"))) { @dwCurrency.Format(GetDouble("Ecom:Product:Field.Discount.Value.Clean"), true) ; } else if (!string.IsNullOrWhiteSpace(GetString("Ecom:Product:Field.DefaultCustomerPrice"))) { @dwCurrency.Format(GetDouble("Ecom:Product:Field.DefaultCustomerPrice.Value.Clean"), true) ; } else { @dwCurrency.Format(GetDouble("Ecom:Product:Field.DefaultPrice.Value.Clean"), true) } </span> </h3> <!-- er der en tilbudspris, der er billigere end den kundespecifikke pris--> @if (!string.IsNullOrWhiteSpace(GetString("Ecom:Product:Field.Discount"))) { <h3 class="product-price discount">@Translate("On sale") <span>@dwCurrency.Format(GetDouble("Ecom:Product:Field.Discount"), true)</span></h3> } @if (!GetString("AccessUser_AllowQuantityDisc").Contains("no")) { <!-- mængdepriser --> if (!string.IsNullOrWhiteSpace(GetString("Ecom:Product:Field.Price2"))) { <p class="product-discount-text">@Translate("Price per item in") @GetString("Ecom:Product:Field.Price2").Split(' ')[0] @Translate("bulk")<span>@GetString("Ecom:Product:Field.Price2").Split(' ')[2]</span></p> } if (!string.IsNullOrWhiteSpace(GetString("Ecom:Product:Field.Price3"))) { <p class="product-discount-text">@Translate("Price per item in") @GetString("Ecom:Product:Field.Price3").Split(' ')[0] @Translate("bulk")<span>@GetString("Ecom:Product:Field.Price3").Split(' ')[2]</span></p> } if (!string.IsNullOrWhiteSpace(GetString("Ecom:Product:Field.Price4"))) { <p class="product-discount-text">@Translate("Price per item in") @GetString("Ecom:Product:Field.Price4").Split(' ')[0] @Translate("bulk")<span>@GetString("Ecom:Product:Field.Price4").Split(' ')[2]</span></p> } if (!string.IsNullOrWhiteSpace(GetString("Ecom:Product:Field.Price5"))) { <p class="product-discount-text">@Translate("Price per item in") @GetString("Ecom:Product:Field.Price5").Split(' ')[0] @Translate("bulk")<span>@GetString("Ecom:Product:Field.Price5").Split(' ')[2]</span></p> } } </div> @if (!string.IsNullOrWhiteSpace(GetString("Ecom:Product:Field.BonusPrice"))) {<div class="bonus-price-container"> <h4 class="product-price bonus-price"> @Translate("Bonus price"): <span> @dwCurrency.Format(GetDouble("Ecom:Product:Field.BonusPrice.Value.Clean"), true) </span> </h4> </div> } @if (GetInteger("Ecom:Product.Type") != 3) { <div class="product-add-to-cart-form"> @if (GetString("Ecom:Product:Field.specialOrderItem.Value.Clean").ToLower() == "yes") { <p class="product-availability available"> @Translate("The product will be ordered home when you order") </p> } @if (GetInteger("Ecom:Product.Stock") > 0) { <p class="product-availability available"> @Translate("In stock") </p> } @if (GetInteger("Ecom:Product.Stock") <= 0) { <p class="product-availability "> @Translate("Out of stock") </p> } @*@GetInteger("Ecom:Product.Stock")*@ <!-- Add to cart --> @*Hvis produktet ikke er udgået, vis køb knap*@ @if (!replacedProduct) { <pre style="display:none;">sctock : - @GetInteger("Ecom:Product.Stock") --- @GetString("Ecom:Product:Field.specialOrderItem")</pre> <div class="add-product"> @if (orderLimit.Exists) { <div id="js-product-order-limit" class="order-limit-message"> <span> @if (orderLimit.IsInCart && orderLimit.MaxIsOrdered) { @Translate("Maks {ORDERLIMIT} per kunde").Replace("{ORDERLIMIT}", orderLimit.Max.ToString()) } else if (orderLimit.IsInCart && !orderLimit.MaxIsOrdered) { @Translate("Du kan kun kjøpe {ORDERLIMIT} till").Replace("{ORDERLIMIT}", orderLimit.Max.ToString()) } else { @Translate("Maks {ORDERLIMIT} per kunde").Replace("{ORDERLIMIT}", orderLimit.Max.ToString()) } </span> </div> } <input type="number" class="productpage-quantity" id="buy-quantity" title="@Translate("Quantity")" @(orderLimit.Exists ? "min=\"0\" max=\"" + orderLimit.Max + "\"" : "") @(orderLimit.MaxIsOrdered ? "disabled" : "") /> @if (GetString("Ecom:Product:Field.specialOrderItem.Value.Clean").ToLower() == "yes") { <a id="product-buy" onclick="return checkIfBackOrder(@GetInteger("Ecom:Product.Stock"), '@GetString("Ecom:Product:Field.specialOrderItem")' )" href="/default.aspx?id=@GetValue("Ecom:Product:Page.ID")&amp;productid=@GetValue("Ecom:Product.ID")&amp;cartcmd=add" data-stocked="@GetString("Ecom:Product.Stock")" class="buy button add-to-cart productpage-add-to-cart" rel="nofollow">@Translate("Add to cart")</a> } else { <button id="product-buy" onclick="@(orderLimit.MaxIsOrdered ? "return false;" : "") return checkIfBackOrder(@GetInteger("Ecom:Product.Stock"), '@GetString("Ecom:Product:Field.specialOrderItem")' )" href="/default.aspx?id=@GetValue("Ecom:Product:Page.ID")&amp;productid=@GetValue("Ecom:Product.ID")&amp;cartcmd=add" data-stocked="@GetString("Ecom:Product.Stock")" class="buy button add-to-cart productpage-add-to-cart @(orderLimit.MaxIsOrdered ? "disabled" : "")" rel="nofollow" @(orderLimit.MaxIsOrdered ? "disabled" : "")>@Translate("Add to cart")</button> } <span>@Translate("Sending...")</span> </div> } else { <div class="add-product" style="width: 100%;"> <a href="@productUrl" class="button expand grey" rel="nofollow" style="height: 100%;padding: .575rem .625rem">@Translate("See alternative")</a> </div> } <!-- Add to cart --> <div class="product__favorite"> @{ bool isfavorite = @GetBoolean("Ecom:Product.IsProductInFavoriteList"); string incatalogueclass = (isfavorite) ? "incatalogue" : "notincatalogue"; } @if (isfavorite) { <a href="@(GetValue("Ecom:Product.RemoveFromFavorites").ToString().Replace("&CCRemoveFromProductList=1", "") + "&CCRemoveFromProductList=1")" title="@Translate("Remove from catalog")"> <svg class="icon selected" id="icon-favorite-selected"> <use xlink:href="/Files/Templates/Designs/Nordenta/public/images/svgsprite.svg#icon-favorite-selected"></use> </svg> @Translate("Remove from catalog") </a> } else { <a class="not-in-catalogue" href="@GetValue("Ecom:Product.AddToFavorites")" title="@Translate("Add to catalog")"> <svg class="icon" id="icon-favorite"><use xlink:href="/Files/Templates/Designs/Nordenta/public/images/svgsprite.svg#icon-favorite"></use></svg> @Translate("Add to catalog") </a> } </div> </div> } </div> } <!--Karton priser start--> if (!string.IsNullOrWhiteSpace(GetString("Ecom:Product:Field.Price1"))) { var colliPrice = Convert.ToDecimal(GetString("Ecom:Product:Field.Price1").Split(' ')[2]) * Convert.ToDecimal(@GetString("Ecom:Product:Field.Price1").Split(' ')[0]); var colliPriceDecimal = Math.Round(colliPrice, 2); <div class="product-add-to-cart"> <div> <p class="product-normal-price">@Translate("One carton contains"): <span>@GetString("Ecom:Product:Field.Price1").Split(' ')[0] @Translate("pcs")</span></p> <h3 class="product-price your-price"> @Translate("Carton price")<span> @colliPriceDecimal </span> </h3> <!-- er der en tilbudspris, der er billigere end den kundespecifikke pris--> @if (!string.IsNullOrWhiteSpace(GetString("Ecom:Product:Field.Discount"))) { <h3 class="product-price discount">@Translate("On sale") <span>@dwCurrency.Format(GetDouble("Ecom:Product:Field.Discount"), true)</span></h3> } @if (!GetString("AccessUser_AllowQuantityDisc").Contains("no")) { <!-- mængdepriser --> if (!string.IsNullOrWhiteSpace(GetString("Ecom:Product:Field.Price2"))) { <p class="product-discount-text">@Translate("Price per item in") @GetString("Ecom:Product:Field.Price2").Split(' ')[0] @Translate("bulk")<span>@dwCurrency.Format(Double.Parse(GetString("Ecom:Product:Field.Price2").Split(' ')[2]))</span></p> } if (!string.IsNullOrWhiteSpace(GetString("Ecom:Product:Field.Price3"))) { <p class="product-discount-text">@Translate("Price per item in") @GetString("Ecom:Product:Field.Price3").Split(' ')[0] @Translate("bulk")<span>@GetString("Ecom:Product:Field.Price3").Split(' ')[2]</span></p> } if (!string.IsNullOrWhiteSpace(GetString("Ecom:Product:Field.Price4"))) { <p class="product-discount-text">@Translate("Price per item in") @GetString("Ecom:Product:Field.Price4").Split(' ')[0] @Translate("bulk")<span>@GetString("Ecom:Product:Field.Price4").Split(' ')[2]</span></p> } if (!string.IsNullOrWhiteSpace(GetString("Ecom:Product:Field.Price5"))) { <p class="product-discount-text">@Translate("Price per item in") @GetString("Ecom:Product:Field.Price5").Split(' ')[0] @Translate("bulk")<span>@GetString("Ecom:Product:Field.Price5").Split(' ')[2]</span></p> } } </div> @if (!string.IsNullOrWhiteSpace(GetString("Ecom:Product:Field.BonusPrice"))) {<div class="bonus-price-container"> <h4 class="product-price bonus-price"> @Translate("Bonus price"): <span> @dwCurrency.Format(GetDouble("Ecom:Product:Field.BonusPrice.Value.Clean"), true) </span> </h4> </div> } <div class="product-add-to-cart-form"> @if (GetInteger("Ecom:Product.Stock") > 0) { <p class="product-availability available"> @Translate("In stock") </p> } else if (GetString("Ecom:Product:Field.specialOrderItem.Value.Clean").ToLower() == "yes") { <p class="product-availability available"> @Translate("The product will be ordered home when you order") </p> } else { <p class="product-availability "> @Translate("Out of stock") </p> } <!-- Add to cart --> <div class="add-product"> @if (colliOrderLimit.Exists) { <div id="js-product-order-limit" class="order-limit-message"> <span> @if (colliOrderLimit.IsInCart && colliOrderLimit.MaxIsOrdered) { @Translate("Maks {ORDERLIMIT} per kunde").Replace("{ORDERLIMIT}", colliOrderLimit.Max.ToString()) } else if (colliOrderLimit.IsInCart && !colliOrderLimit.MaxIsOrdered) { @Translate("Du kan kun kjøpe {ORDERLIMIT} till").Replace("{ORDERLIMIT}", orderLimit.Max.ToString()) } else { @Translate("Maks {ORDERLIMIT} per kunde").Replace("{ORDERLIMIT}", colliOrderLimit.Max.ToString()) } </span> </div> } <input type="number" class="productpage-quantity productpage-carton-quantity" id="carton-quantity" title="@Translate("Quantity")" @(colliOrderLimit.Exists ? "min=\"0\" max=\"" + colliOrderLimit.Max + "\"" : "") @(colliOrderLimit.MaxIsOrdered ? "disabled" : "") /> @*<input type="number" class="productpage-carton-quantity" id="carton-quantity" title="@Translate("Quantity")" />*@ <a id="carton-buy" class="buy button add-to-cart productpage-add-to-carts" rel="nofollow">@Translate("Add to cart")</a> <span>@Translate("Sending...")</span> </div> <!-- Add to cart Colli --> <div class="add-to-cart"> <script> var quantity = ""; var stdQuantity = @Convert.ToDouble(GetString("Ecom:Product:Field.Price1").Split(' ')[0]); (function () { document.getElementById("carton-quantity").onkeyup = function () { quantity = document.getElementById("carton-quantity").value; } document.getElementById("carton-buy").onclick = function () { if (quantity=="" || isNaN(quantity) || quantity=="0") { quantity = @GetString("Ecom:Product:Field.Price1").Split(' ')[0]; } else { quantity = parseInt(quantity * stdQuantity); } localStorage.setItem("product-" + @GetValue("Ecom:Product.ID"), stdQuantity); document.getElementById("carton-buy").href = "/default.aspx?id=@GetValue("Ecom:Product:Page.ID")&amp;productid=@GetValue("Ecom:Product.ID")&amp;cartcmd=add&amp;quantity=" + quantity; }; })(); </script> </div> </div> </div> <!--Karton priser slut--> } } else { <div class="panel"> <a href="#" class="login-to-buy" title='@Translate("Login to buy")'>@Translate("Login to buy")</a> </div> } <div class="product-description"> <h4>@Translate("Description")</h4> <p> @GetValue("Ecom:Product:Field.ExtDescription.Value") @GetValue("Ecom:Product:Field.ExtDescription2.Value") @GetValue("Ecom:Product:Field.ExtDescription3.Value") @GetValue("Ecom:Product:Field.ExtDescription4.Value") @GetValue("Ecom:Product:Field.ExtDescription5.Value") </p> <h4>@Translate("Product information")</h4> <ul class="product-description__details"> <li> <span>@Translate("Item no")</span> <p>@GetValue("Ecom:Product.Number")</p> </li> <li> <span>@Translate("Opr.lev.varenr")</span> <p>@GetValue("Ecom:Product:Field.OprLevVareNr.Value.Clean")</p> </li> <li> <span>@Translate("Manufacturer")</span> <p>@GetValue("Ecom:Product:Field.ManufacturerField.Value.Clean")</p> </li> <li> <span>@Translate("Amount")</span> <p>@GetValue("Ecom:Product:Field.QuantityDescription")</p> </li> </ul> @if (Pageview.User.UserID > 0) { string dataUrl = @"http://webdata.nordenta.dk/Datablade"; <h4>@Translate("Extra information")</h4> if (GetString("Ecom:Product:Field.ExtFilename.Value.Clean") != string.Empty) { <h3>@Translate("Safety data sheet", "Sikkerhedsdatablad")</h3> } <ul class="product-description__extra-information"> @{ string data1 = GetString("Ecom:Product:Field.ExtFilename.Value.Clean"); string dataName1 = GetString("Ecom:Product:Field.ExtFilenameTekst"); if (data1 != string.Empty) { <li><a href="@(dataUrl + "/" + data1)" target="_blank">@dataName1</a></li> } string data2 = GetString("Ecom:Product:Field.ExtFilename2.Value.Clean"); string dataName2 = GetString("Ecom:Product:Field.ExtFilenameTekst2"); if (data2 != string.Empty) { <li><a href="@(dataUrl + "/" + data2)" target="_blank">@dataName2</a></li> } string data3 = GetString("Ecom:Product:Field.ExtFilename3.Value.Clean"); string dataName3 = GetString("Ecom:Product:Field.ExtFilenameTekst3"); if (data3 != string.Empty) { <li><a href="@(dataUrl + "/" + data3)" target="_blank">@dataName3</a></li> } string data4 = GetString("Ecom:Product:Field.ExtFilename4.Value.Clean"); string dataName4 = GetString("Ecom:Product:Field.ExtFilenameTekst4"); if (data4 != string.Empty) { <li><a href="@(dataUrl + "/" + data4)" target="_blank">@dataName4</a></li> } string data5 = GetString("Ecom:Product:Field.ExtFilename5.Value.Clean"); string dataName5 = GetString("Ecom:Product:Field.ExtFilenameTekst5"); if (data5 != string.Empty) { <li><a href="@(dataUrl + "/" + data5)" target="_blank">@dataName5</a></li> } string data6 = GetString("Ecom:Product:Field.ExtFilename6.Value.Clean"); string dataName6 = GetString("Ecom:Product:Field.ExtFilenameTekst6"); if (data6 != string.Empty) { <li><a href="@(dataUrl + "/" + data6)" target="_blank">@dataName6</a></li> } string data7 = GetString("Ecom:Product:Field.ExtFilename7.Value.Clean"); string dataName7 = GetString("Ecom:Product:Field.ExtFilenameTekst7"); if (data7 != string.Empty) { <li><a href="@(dataUrl + "/" + data7)" target="_blank">@dataName7</a></li> } } </ul> if (GetString("Ecom:Product:Field.VideoFilenameLinkTekst") != string.Empty) { <h3>@Translate("Video", "Video")</h3> } <ul class="product-description__extra-information"> @{ string video = GetString("Ecom:Product:Field.VideoFilename.Value"); string videoName1 = GetString("Ecom:Product:Field.VideoFilenameLinkTekst"); if (video != string.Empty) { <li><a href="@(video)" target="_blank">@(videoName1 ?? "Instruktionsvideo 1")</a></li> } string video2 = GetString("Ecom:Product:Field.VideoFilename2.Value"); string videoName2 = GetString("Ecom:Product:Field.VideoFilename2LinkTekst"); if (video2 != string.Empty) { <li><a href="@(video2)" target="_blank">@(videoName2 ?? "Instruktionsvideo 2")</a></li> } string video3 = GetString("Ecom:Product:Field.VideoFilename3.Value"); string videoName3 = GetString("Ecom:Product:Field.VideoFilename3LinkTekst"); if (video3 != string.Empty) { <li><a href="@(video3)" target="_blank">@(videoName3 ?? "Instruktionsvideo 3")</a></li> } string video4 = GetString("Ecom:Product:Field.VideoFilename4.Value"); string videoName4 = GetString("Ecom:Product:Field.VideoFilename4LinkTekst"); if (video4 != string.Empty) { <li><a href="@(video4)" target="_blank">@(videoName4 ?? "Instruktionsvideo 4")</a></li> } string video5 = GetString("Ecom:Product:Field.VideoFilename5.Value"); string videoName5 = GetString("Ecom:Product:Field.VideoFilename5LinkTekst"); if (video5 != string.Empty) { <li><a href="@(video5)" target="_blank">@(videoName5 ?? "Instruktionsvideo 5")</a></li> } } </ul> } </div> </aside>