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")&productid=@GetValue("Ecom:Product.ID")&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")&productid=@GetValue("Ecom:Product.ID")&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")&productid=@GetValue("Ecom:Product.ID")&cartcmd=add&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>