Error executing template "Designs/Swift-v2/Paragraph/Swift-v2_BreadcrumbNavigation/Plain.cshtml"
System.ArgumentException: An item with the same key has already been added. Key: Rex8555
at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior)
at Dynamicweb.Ecommerce.Shops.Shop.GetTopLevelGroups(String languageId)
at Dynamicweb.Ecommerce.Frontend.Navigation.GroupNavigationTreeNodeProvider.GetGroupsBySettings(PageNavigationSettings ecomSettings)
at Dynamicweb.Ecommerce.Frontend.Navigation.GroupNavigationTreeNodeProvider.GetNodes(NavigationContext context, NavigationSettings settings, NavigationTreeNode parent)
at System.Linq.Enumerable.SelectManySingleSelectorIterator`2.MoveNext()
at System.Linq.Enumerable.TryGetFirst[TSource](IEnumerable`1 source, Func`2 predicate, Boolean& found)
at Dynamicweb.Frontend.Navigation.NavigationService.FilterNodesByExpandMode(NavigationContext context, NavigationSettings settings, NavigationTreeNode parent, IEnumerable`1 nodes, Int32 nodesLevel)
at Dynamicweb.Frontend.Navigation.NavigationService.GetNavigationNodes(NavigationContext context, NavigationSettings settings, NavigationTreeNode parent)
at Dynamicweb.Frontend.Navigation.NavigationTreeNodeViewModel.get_Nodes()
at CompiledRazorTemplates.Dynamic.RazorEngine_c00e7ba3b3df486ca232e392656caefe.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.ParagraphViewModel>
2 @using Dynamicweb.Frontend.Navigation
3
4 @{
5 var navigationSettings = new NavigationSettings();
6 navigationSettings.IncludeFoldersAndHidden = true;
7 navigationSettings.ExpandMode = ExpandMode.PathOnly;
8
9 NavigationTreeViewModel navigationModel = Navigation.GetNavigationViewModel(navigationSettings);
10 }
11
12 @if (navigationModel.Nodes.Count() > 0)
13 {
14 string menuId = "menu_breadcrumb";
15 bool showProductInBreadcrumb = Model.Item.GetBoolean("ShowProductInBreadcrumb");
16 var breadCrumbNavigationTree = new Stack<Dynamicweb.Frontend.Navigation.NavigationTreeNodeViewModel>(navigationModel.Nodes);
17
18 <ol class="breadcrumb small mb-0 @menuId">
19 @while (breadCrumbNavigationTree.Count > 0)
20 {
21 var currentNode = breadCrumbNavigationTree.Pop();
22 if (currentNode.ShowInBreadcrumb)
23 {
24 if (!string.IsNullOrEmpty(currentNode.Link))
25 {
26 //Custom keep filtration when selecting new group and filters available
27 var keepFiltration = Model.Item.GetBoolean("CustomKeepFiltration");
28
29 if (keepFiltration)
30 {
31 var excludedParameters = !string.IsNullOrEmpty(Model.Item.GetList("CustomExcludedParameters")?.ToString()) ? Model.Item.GetList("CustomExcludedParameters")?.ToString() : "";
32
33 var requestQueryString = Dynamicweb.Context.Current?.Request.QueryString;
34
35 if (requestQueryString != null && requestQueryString.HasKeys())
36 {
37 currentNode.Link += "?";
38 foreach (var key in requestQueryString.Keys)
39 {
40 if (excludedParameters.Contains(key.ToString(), StringComparison.InvariantCultureIgnoreCase)) continue;
41
42 currentNode.Link += $"{key}={requestQueryString.Get(key.ToString())}&";
43 }
44
45 currentNode.Link = currentNode.Link.Remove(currentNode.Link.Length - 1);
46 }
47 }
48
49 <li class="breadcrumb-item">
50 <a href="@currentNode.Link">
51 @currentNode.Name
52 </a>
53 </li>
54 }
55 else
56 {
57 <li class="breadcrumb-item">
58 @currentNode.Name
59 </li>
60 }
61 }
62 foreach (var nextNode in currentNode.Nodes)
63 {
64 breadCrumbNavigationTree.Push(nextNode);
65 }
66 }
67
68 @if (showProductInBreadcrumb && !string.IsNullOrEmpty(Dynamicweb.Context.Current?.Request.QueryString["ProductID"]))
69 {
70 string productid = Dynamicweb.Context.Current?.Request.QueryString["ProductID"] ?? string.Empty;
71 string variantid = Dynamicweb.Context.Current?.Request.QueryString["VariantID"] ?? string.Empty;
72 var product = Dynamicweb.Ecommerce.Services.Products.GetProductById(productid, variantid, Dynamicweb.Ecommerce.Common.Context.LanguageID);
73 if (product != null)
74 {
75 <li class="breadcrumb-item">
76 @product.Name
77 </li>
78 }
79 }
80 </ol>
81 }
82 else if (Pageview.IsVisualEditorMode)
83 {
84 <div class="alert alert-dark m-0" role="alert">
85 <span>@Translate("Breadcrumb navigation: The navigation will be shown here, if any")</span>
86 </div>
87 }
88