Empty cart
You do not have any item in the cart
Error executing template "Designs/Swift/Navigation/MegaMenu.cshtml" System.InvalidOperationException: Operations that change non-concurrent collections must have exclusive access. A concurrent update was performed on this collection and corrupted its state. The collection's state is no longer correct. at System.Collections.Generic.Dictionary`2.FindValue(TKey key) at Dynamicweb.Ecommerce.Products.GroupService.GetSubgroups(Group group, Boolean showUnTranslated) at Dynamicweb.Ecommerce.Frontend.Navigation.GroupNavigationTreeNodeProvider.GetNodes(NavigationContext context, NavigationSettings settings, NavigationTreeNode parent) at System.Linq.Enumerable.SelectManySingleSelectorIterator`2.MoveNext() at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext() at System.Linq.Enumerable.<Any>g__WithEnumerator|36_0[TSource](IEnumerable`1 source) at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source) at CompiledRazorTemplates.Dynamic.RazorEngine_4f4f103996bb425f8617b288a1507102.ExecuteAsync() at RazorEngine.Templating.TemplateBase.Run(ExecuteContext context, TextWriter reader) at RazorEngine.Templating.RazorEngineCore.RunTemplate(ICompiledTemplate template, TextWriter writer, Object model, DynamicViewBag viewBag) at RazorEngine.Templating.RazorEngineService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) at RazorEngine.Templating.DynamicWrapperService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) at RazorEngine.Templating.RazorEngineServiceExtensions.Run(IRazorEngineService service, String name, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass23_0.<Run>b__0(TextWriter writer) at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter) at RazorEngine.Templating.RazorEngineServiceExtensions.Run(IRazorEngineService service, String name, Type modelType, Object model, DynamicViewBag viewBag) at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template) at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template) at Dynamicweb.Rendering.Template.RenderRazorTemplate()
1 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.Navigation.NavigationTreeViewModel> @using Dynamicweb @using System.IO @using Dynamicweb.Ecommerce.ProductCatalog @using Dynamicweb.Ecommerce.Common @using System.Text @functions { string RenderNavigationItem(Dynamicweb.Frontend.Navigation.NavigationTreeNodeViewModel node, string pageType, string pageIcon, string iconSize, string layout) { bool pageTypeSwiftCart = pageType == "Swift_Cart"; double totalProducts = 0; if (Dynamicweb.Ecommerce.Common.Context.Cart != null && pageTypeSwiftCart) { totalProducts = Dynamicweb.Ecommerce.Common.Context.Cart.GetParentProductLineQuantityCount(Dynamicweb.Ecommerce.Common.Context.Cart.OrderLines); } bool iconValid = pageIcon.EndsWith(".svg", StringComparison.OrdinalIgnoreCase) && !pageIcon.EndsWith("none.svg", StringComparison.OrdinalIgnoreCase); string iconPath = iconValid ? Dynamicweb.Context.Current.Server.MapPath(pageIcon) : string.Empty; string iconRender = iconValid ? $"<span class=\"{iconSize}\">{@ReadFile(iconPath)}</span>" : string.Empty; string totalProductsRender = pageTypeSwiftCart ? $"<span class=\"js-cart-qty mini-cart-quantity\">{(@totalProducts)}</span>" : string.Empty; string nameRender = $"<span>{@node.Name}</span>"; StringBuilder navigationItemBuilder = new StringBuilder(); navigationItemBuilder.Append(layout.ToLower().StartsWith("link") ? nameRender : iconRender); navigationItemBuilder.Append(totalProductsRender); navigationItemBuilder.Append(layout.ToLower().EndsWith("icons") ? iconRender : layout.ToLower().EndsWith("links") ? nameRender : string.Empty); return navigationItemBuilder.ToString(); } Dictionary<string, object> GetGroupImageParams() { Dictionary<string, object> groupImageParams = new Dictionary<string, object>(); string productGroupImageShape = Model.Parameters["ProductGroupImageShape"] != null ? Model.Parameters["ProductGroupImageShape"].ToString() : string.Empty; string productGroupImageSize = Model.Parameters["ProductGroupImageSize"] != null ? Model.Parameters["ProductGroupImageSize"].ToString() : string.Empty; string ratio = productGroupImageSize.Contains("%") ? Model.Parameters["ProductGroupImageSize"].ToString() : string.Empty; groupImageParams.Add("ProductGroupImageShape", productGroupImageShape); groupImageParams.Add("ProductGroupImageSize", productGroupImageSize); groupImageParams.Add("Ratio", ratio); return groupImageParams; } } @{ string theme = !string.IsNullOrEmpty(Model.Parameters["theme"].ToString()) ? Model.Parameters["theme"].ToString() : string.Empty; string navAlignment = !string.IsNullOrEmpty(Model.Parameters["NavAlignment"].ToString()) ? Model.Parameters["NavAlignment"].ToString() : string.Empty; string linkFontWeight = !string.IsNullOrEmpty(Model.Parameters["LinkFontWeight"].ToString()) ? Model.Parameters["LinkFontWeight"].ToString() : string.Empty; string linkCasing = !string.IsNullOrEmpty(Model.Parameters["LinkCasing"].ToString()) ? Model.Parameters["LinkCasing"].ToString() : string.Empty; string linkFontSize = !string.IsNullOrEmpty(Model.Parameters["LinkFontSize"].ToString()) ? Model.Parameters["LinkFontSize"].ToString() : string.Empty; string layout = !string.IsNullOrEmpty(Model.Parameters["Layout"].ToString()) ? Model.Parameters["Layout"].ToString() : string.Empty; string iconSize = "icon-3"; if (linkFontSize == "fs-7") { iconSize = "icon-2"; } if (linkFontSize == "fs-5") { iconSize = "icon-4"; } string dropdownAlignment = Model.Parameters["DropdownAlignment"] != null ? Model.Parameters["DropdownAlignment"].ToString() : string.Empty; string dropdownLinkHeaderFontWeight = Model.Parameters["DropdownLinkHeaderFontWeight"] != null ? Model.Parameters["DropdownLinkHeaderFontWeight"].ToString() : string.Empty; string dropdownLinkHeaderCasing = Model.Parameters["DropdownLinkHeaderCasing"] != null ? Model.Parameters["DropdownLinkHeaderCasing"].ToString() : string.Empty; string dropdownLinkHeaderFontSize = Model.Parameters["DropdownLinkHeaderFontSize"] != null ? Model.Parameters["DropdownLinkHeaderFontSize"].ToString() : string.Empty; string dropdownLinkFontWeight = Model.Parameters["DropdownLinkFontWeight"] != null ? Model.Parameters["DropdownLinkFontWeight"].ToString() : string.Empty; string dropdownLinkCasing = Model.Parameters["DropdownLinkCasing"] != null ? Model.Parameters["DropdownLinkCasing"].ToString() : string.Empty; string dropdownLinkFontSize = Model.Parameters["DropdownLinkFontSize"] != null ? Model.Parameters["DropdownLinkFontSize"].ToString() : string.Empty; string productGroupImagePlacement = Model.Parameters["ProductGroupImagePlacement"] != null ? Model.Parameters["ProductGroupImagePlacement"].ToString() : string.Empty; string imageAlignment = ""; imageAlignment = dropdownAlignment == "justify-content-start text-start" && productGroupImagePlacement == "flex-row" ? "align-items-center" : imageAlignment; imageAlignment = dropdownAlignment == "justify-content-start text-start" && productGroupImagePlacement == "flex-row-reverse" ? "align-items-center" : imageAlignment; imageAlignment = dropdownAlignment == "justify-content-start text-start" && productGroupImagePlacement == "flex-column" ? "align-items-start" : imageAlignment; imageAlignment = dropdownAlignment == "justify-content-center text-center" && productGroupImagePlacement == "flex-row" ? "align-items-center" : imageAlignment; imageAlignment = dropdownAlignment == "justify-content-center text-center" && productGroupImagePlacement == "flex-row-reverse" ? "align-items-center" : imageAlignment; imageAlignment = dropdownAlignment == "justify-content-center text-center" && productGroupImagePlacement == "flex-column" ? "align-items-center" : imageAlignment; imageAlignment = dropdownAlignment == "justify-content-end text-end" && productGroupImagePlacement == "flex-row" ? "align-items-center" : imageAlignment; imageAlignment = dropdownAlignment == "justify-content-end text-end" && productGroupImagePlacement == "flex-row-reverse" ? "align-items-center" : imageAlignment; bool showProductGroupPromotionImage = Model.Parameters.ContainsKey("ShowProductGroupPromotionImage") ? Convert.ToBoolean(Model.Parameters["ShowProductGroupPromotionImage"].ToString()) : false; string menuId = Model.Parameters.ContainsKey("menu-id") ? $"menu_{Model.Parameters["menu-id"].ToString().ToLower()}" : string.Empty; int currentParagraphId = Pageview.CurrentParagraph.ID; } <nav class="d-flex py-0 @navAlignment"> <ul class="nav flex-nowrap @menuId"> @foreach (var node in Model.Nodes) { var page = Dynamicweb.Content.Services.Pages.GetPage(node.PageId); var pageType = !string.IsNullOrEmpty(page.ItemType) ? page.ItemType : "Swift_Page"; string submenuType = "auto"; if (page.PropertyItem is object && page.PropertyItem.TryGetValue("SubmenuType", out object submenuTypeValue)) { submenuType = Dynamicweb.Core.Converter.ToString(submenuTypeValue); } string pageIcon = string.Empty; if (page.PropertyItem is object && page.PropertyItem.TryGetValue("Icon", out object pageIconValue)) { pageIcon = Dynamicweb.Core.Converter.ToString(pageIconValue); } var hasChildren = node.Nodes.Count() > 0; string dropdownAttributes = hasChildren ? " role=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\" data-bs-toggle=\"dropdown\" data-bs-offset=\"0,0\"" : ""; bool hasManyChildren = false; foreach (var subnode in node.Nodes) { if (subnode.Nodes.Any()) { hasManyChildren = true; } } submenuType = submenuType == "auto" && hasManyChildren ? "megamenu" : submenuType; submenuType = submenuType == "auto" && !hasManyChildren ? "dropdown" : submenuType; string submenuTypeCss = submenuType == "dropdown" ? " dropdown" : ""; submenuTypeCss = submenuType == "megamenu" ? " dropdown position-static" : submenuTypeCss; string nodeId = !string.IsNullOrEmpty(node.GroupId) ? "Megamenu_" + node.GroupId + "_" + currentParagraphId : "Megamenu_Page_" + node.PageId.ToString() + "_" + currentParagraphId; string dataType = !string.IsNullOrEmpty(node.GroupId) ? "group" : "page"; <li id="@(nodeId)" data-type="@dataType" class="nav-item@(node.IsActive ? " active" : "")@submenuTypeCss"> @if (node.IsClickable) { @:<a class="nav-link p-2 text-decoration-underline-hover @linkFontWeight @linkCasing @linkFontSize@(node.IsActive ? " active" : "")@(hasChildren ? " dropdown-toggle" : "")" href="@node.Link" @dropdownAttributes id="NavLink_@nodeId"> } else { @:<span class="nav-link p-2 @linkFontWeight @linkCasing @linkFontSize @dropdownAlignment@(hasChildren ? " dropdown-toggle" : "")" @dropdownAttributes id="NavLink_@nodeId"> } @RenderNavigationItem(node, pageType, pageIcon, iconSize, layout) @if (node.IsClickable) { @:</a> } else { @:</span> } @if (hasChildren) { if (submenuType == "megamenu") { <div class="dropdown-menu megamenu py-4@(theme)" aria-labelledby="@nodeId" id="NavGroup@(nodeId)"> <div class="container-xl"> @if (showProductGroupPromotionImage && !string.IsNullOrEmpty(node.GroupId)) { <div class="grid gap-4"> <div class="g-col-9 g-col-xxl-10"> <div class="d-flex flex-wrap gap-3 mx-n2 mx-xxl-n3 @dropdownAlignment"> @foreach (var subnode in node.Nodes) { nodeId = !string.IsNullOrEmpty(subnode.GroupId) ? "Megamenu_" + subnode.GroupId + "_" + currentParagraphId : "Megamenu_Page_" + subnode.PageId.ToString() + "_" + currentParagraphId; dataType = !string.IsNullOrEmpty(subnode.GroupId) ? "group" : "page"; <div class="col-4 col-xl-3 col-xxl-2"> @if (subnode.IsClickable) { @:<a id="@(nodeId)" data-type="@dataType" href="@subnode.Link" class="nav-link text-decoration-underline-hover lh-sm text-break"> } else { @:<div id="@(nodeId)" data-type="@dataType" class="nav-link lh-sm text-break"> } @if (productGroupImagePlacement != "none") { Dictionary<string, object> groupImageParams = GetGroupImageParams(); <div class="d-flex @productGroupImagePlacement @imageAlignment gap-3"> @RenderPartial("Navigation/MegaMenu/GroupImage.cshtml", subnode, groupImageParams) <h6 class="m-0 w-100 @dropdownLinkHeaderFontWeight @dropdownLinkHeaderCasing @dropdownLinkHeaderFontSize">@subnode.Name</h6> </div> } else { <h6 class="m-0 @dropdownLinkHeaderFontWeight @dropdownLinkHeaderCasing @dropdownLinkHeaderFontSize">@subnode.Name</h6> } @if (subnode.IsClickable) { @:</a> } else { @:</div> } @* copy paste group image og lav clickable løsning *@ @if (subnode.Nodes.Any()) { foreach (var subsubnode in subnode.Nodes) { nodeId = !string.IsNullOrEmpty(subsubnode.GroupId) ? "Megamenu_" + subsubnode.GroupId + "_" + currentParagraphId : "Megamenu_Page_" + subsubnode.PageId.ToString() + "_" + currentParagraphId; dataType = !string.IsNullOrEmpty(subsubnode.GroupId) ? "group" : "page"; if (subsubnode.IsClickable) { <a class="nav-link text-decoration-underline-hover lh-sm text-break" href="@subsubnode.Link" @(subnode.IsActive ? " aria-current='page'" : "")> @if (productGroupImagePlacement != "none") { Dictionary<string, object> groupImageParams = GetGroupImageParams(); <div class="d-flex @productGroupImagePlacement @imageAlignment gap-3"> @RenderPartial("Navigation/MegaMenu/GroupImage.cshtml", subsubnode, groupImageParams) <span class="w-100 @dropdownLinkFontWeight @dropdownLinkCasing @dropdownLinkFontSize">@subsubnode.Name</span> </div> } else { <span class="@dropdownLinkFontWeight @dropdownLinkCasing @dropdownLinkFontSize">@subsubnode.Name</span> } </a> } else { <div class="nav-link text-decoration-underline-hover lh-sm text-break" @(subnode.IsActive ? " aria-current='page'" : "")> @if (productGroupImagePlacement != "none") { Dictionary<string, object> groupImageParams = GetGroupImageParams(); <div class="d-flex @productGroupImagePlacement @imageAlignment gap-3"> @RenderPartial("Navigation/MegaMenu/GroupImage.cshtml", subsubnode, groupImageParams) <span class="w-100 @dropdownLinkFontWeight @dropdownLinkCasing @dropdownLinkFontSize">@subsubnode.Name</span> </div> } else { <span class="@dropdownLinkFontWeight @dropdownLinkCasing @dropdownLinkFontSize">@subsubnode.Name</span> } </div> } } } </div> } </div> </div> <div class="g-col-3 g-col-xxl-2" id="NavGroupPromotion@(nodeId)"> @{ ProductGroupViewModel promotionImageGroup = node.GetProductGroup(); string link = node.Link; IList<FieldValueViewModel> promotionImageGroupFields = promotionImageGroup.GroupFields != null ? promotionImageGroup.GroupFields : null; if (promotionImageGroupFields != null) { var groupName = promotionImageGroup.Name; string ratio = Model.Parameters["ImageAspectRatio"].ToString(); ratio = ratio != "0" ? ratio : string.Empty; string ratioCssClass = ratio != string.Empty ? " ratio" : ""; string ratioVariable = ratio != "" ? "style=\"--bs-aspect-ratio: " + ratio + "\"" : string.Empty; string productGroupPromotionImage = string.Empty; string productGroupPromotionImageSrc = string.Empty; string productGroupPromotionImagePath = string.Empty; string productGroupPromotionDescription = string.Empty; string productGroupPromotionLinkLabel = string.Empty; string productGroupPromotionLink = string.Empty; string productGroupPromotionImageTheme = Model.Parameters.ContainsKey("ProductGroupPromotionImageTheme") ? Model.Parameters["ProductGroupPromotionImageTheme"].ToString().ToLower() : string.Empty; string gridGap = !string.IsNullOrEmpty(productGroupPromotionImageTheme) ? "gap-0" : "gap-3"; string themePadding = !string.IsNullOrEmpty(productGroupPromotionImageTheme) ? "p-3" : "p-0"; foreach (FieldValueViewModel field in promotionImageGroupFields) { if (field.SystemName == "ProductGroupPromotionImage") { productGroupPromotionImage = field.Value != null ? field.Value.ToString() : string.Empty; productGroupPromotionImageSrc = Dynamicweb.Context.Current.Server.UrlEncode("Files/Images/" + productGroupPromotionImage); productGroupPromotionImagePath = $"/Admin/Public/GetImage.ashx?Image={productGroupPromotionImageSrc}&Width=480&Crop=0"; } if (field.SystemName == "ProductGroupPromotionDescription") { productGroupPromotionDescription = field.Value != null ? field.Value.ToString() : string.Empty; } if (field.SystemName == "ProductGroupPromotionLinkLabel") { productGroupPromotionLinkLabel = field.Value != null ? field.Value.ToString() : string.Empty; } if (field.SystemName == "ProductGroupPromotionLink") { productGroupPromotionLink = field.Value != null ? field.Value.ToString() : string.Empty; } } <div class="grid grid-1 @gridGap@(productGroupPromotionImageTheme)"> @if (productGroupPromotionImage != string.Empty) { productGroupPromotionLink = !string.IsNullOrEmpty(productGroupPromotionLink) ? productGroupPromotionLink : link; <a href="@productGroupPromotionLink" title="@groupName" id="NavGroupPromotionFigureLink@(promotionImageGroup.Id)"> <figure class="m-0@(ratioCssClass)" @ratioVariable> <img class="img-fluid" src="@productGroupPromotionImagePath" alt="@groupName" style="object-fit:cover" loading="lazy"> </figure> </a> } @if (!string.IsNullOrEmpty(productGroupPromotionDescription) || !string.IsNullOrEmpty(productGroupPromotionLinkLabel)) { <div class="grid grid-1 @themePadding "> @if (!string.IsNullOrEmpty(productGroupPromotionDescription)) { <h6 class="m-0">@productGroupPromotionDescription</h6> } @if (!string.IsNullOrEmpty(productGroupPromotionLinkLabel)) { productGroupPromotionLink = !string.IsNullOrEmpty(productGroupPromotionLink) ? productGroupPromotionLink : link; <a href="@productGroupPromotionLink" title="@productGroupPromotionLinkLabel" class="btn btn-link text-start border-0 p-0" id="NavGroupPromotionTextLink@(promotionImageGroup.Id)">@productGroupPromotionLinkLabel</a> } </div> } </div> } } </div> </div> } else { <div class="d-flex flex-wrap mx-n2 mx-xxl-n3 @dropdownAlignment"> @foreach (var subnode in node.Nodes) { nodeId = !string.IsNullOrEmpty(subnode.GroupId) ? "Megamenu_" + subnode.GroupId + "_" + currentParagraphId : "Megamenu_Page_" + subnode.PageId.ToString() + "_" + currentParagraphId; dataType = !string.IsNullOrEmpty(subnode.GroupId) ? "group" : "page"; <div class="col-4 col-xl-3 col-xxl-2"> @if (subnode.IsClickable) { @:<a id="@(nodeId)" data-type="@dataType" href="@subnode.Link" class="nav-link text-decoration-underline-hover lh-sm text-break"> } else { @:<div id="@(nodeId)" data-type="@dataType" class="nav-link lh-sm text-break"> } @if (productGroupImagePlacement != "none") { Dictionary<string, object> groupImageParams = GetGroupImageParams(); <div class="d-flex @productGroupImagePlacement @imageAlignment gap-3"> @{@RenderPartial("Navigation/MegaMenu/GroupImage.cshtml", subnode, groupImageParams)} <h6 class="m-0 w-100 @dropdownLinkHeaderFontWeight @dropdownLinkHeaderCasing @dropdownLinkHeaderFontSize">@subnode.Name</h6> </div> } else { <h6 class="m-0 @dropdownLinkHeaderFontWeight @dropdownLinkHeaderCasing @dropdownLinkHeaderFontSize">@subnode.Name</h6> } @if (subnode.IsClickable) { @:</a> } else { @:</div> } @if (subnode.Nodes.Any()) { foreach (var subsubnode in subnode.Nodes) { nodeId = !string.IsNullOrEmpty(subsubnode.GroupId) ? "Megamenu_" + subsubnode.GroupId + "_" + currentParagraphId : "Megamenu_Page_" + subsubnode.PageId.ToString() + "_" + currentParagraphId; dataType = !string.IsNullOrEmpty(subsubnode.GroupId) ? "group" : "page"; if (subsubnode.IsClickable) { @:<a id="@(nodeId)" data-type="@dataType" class="nav-link text-decoration-underline-hover lh-sm text-break" href="@subsubnode.Link" @(subnode.IsActive ? " aria-current='page'" : "")> } else { @:<div id="@(nodeId)" data-type="@dataType" class="nav-link lh-sm text-break" @(subnode.IsActive ? " aria-current='page'" : "")> } if (productGroupImagePlacement != "none") { Dictionary<string, object> groupImageParams = GetGroupImageParams(); <div class="d-flex @productGroupImagePlacement @imageAlignment gap-3"> @{@RenderPartial("Navigation/MegaMenu/GroupImage.cshtml", subsubnode, groupImageParams)} <span class="w-100 @dropdownLinkFontWeight @dropdownLinkCasing @dropdownLinkFontSize">@subsubnode.Name</span> </div> } else { <span class="@dropdownLinkFontWeight @dropdownLinkCasing @dropdownLinkFontSize">@subsubnode.Name</span> } if (subsubnode.IsClickable) { @:</a> } else { @:</div> } } } </div> } </div> } </div> </div> } else { <ul class="dropdown-menu@(theme)" aria-labelledby="@nodeId"> @if (pageType == "Swift_SignIn") { if (Pageview.User == null) { <li> <a href="@node.Link" class="px-3 py-2 dropdown-item text-decoration-underline-hover @linkFontWeight @linkCasing @linkFontSize" @(node.IsActive ? " aria-current='page'" : "")>@node.Name</a> </li> } } @foreach (var subnode in node.Nodes) { <li> @if (subnode.IsClickable) { <a class="px-3 py-2 dropdown-item text-decoration-underline-hover @linkFontWeight @linkCasing @linkFontSize" href="@subnode.Link" @(node.IsActive ? " aria-current='page'" : "")>@subnode.Name</a> } else { <span class="px-3 py-2 dropdown-item @linkFontWeight @linkCasing @linkFontSize" @(node.IsActive ? " aria-current='page'" : "")>@subnode.Name</span> } </li> } @if (pageType == "Swift_SignIn") { if (Pageview.User != null) { string link = "/Admin/Public/ExtranetLogoff.aspx?redirect=no"; <li><hr class="dropdown-divider"></li> if (Dynamicweb.Security.UserManagement.User.GetCurrentSecondaryUser() != null) { <li> <a href="Default.aspx?ID=@(Pageview.ID)&DwExtranetRemoveSecondaryUser=1" class="px-3 py-2 dropdown-item text-decoration-underline-hover swift_sign-out-as-customer-link @linkFontWeight @linkCasing @linkFontSize" @(node.IsActive ? " aria-current='page'" : "")>@Translate("Sign out as a customer")</a> </li> } <li> <a href="@link" class="px-3 py-2 dropdown-item text-decoration-underline-hover swift_sign-out-link @linkFontWeight @linkCasing @linkFontSize" @(node.IsActive ? " aria-current='page'" : "")>@Translate("Sign out")</a> </li> } } </ul> } } </li> } </ul> </nav>
You do not have any item in the cart
We and our partners use technologies, including cookies, to collect information about you for various purposes, including:
By clicking 'Accept All' you consent to all these purposes. You can also choose to indicate what purposes you will consent to using the custom selections and then click 'Accept selected'.
You can read more about our use of cookies and other technologies, as well as our collection and processing of personal data by clicking here:
Read more about Cookies Our privacy policy