Error executing template "Designs/Tapas/Firstweb.HtmlOutput/menugroups.cshtml"
System.ArgumentException: Get page requires a page ID greater than zero, page ID was 0
at Dynamicweb.Core.Ensure.That[TException](Boolean condition, String message)
at Dynamicweb.Content.PageService.GetPage(Int32 pageId)
at CompiledRazorTemplates.Dynamic.RazorEngine_d3b0afad87f7423895a01a6ba5524594.Execute() in E:\Websites\elma.LIVE\Files\Templates\Designs\Tapas\Firstweb.HtmlOutput\menugroups.cshtml:line 13
at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer)
at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template)
at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template)
at Dynamicweb.Rendering.Template.RenderRazorTemplate()
1 @inherits RazorTemplateBase<RazorTemplateModel<Template>>
2 @using Dynamicweb.Rendering;
3 @using Dynamicweb.Environment;
4 @{
5
6 object objProductCatalogId = (object)null;
7 Dynamicweb.Frontend.PageView.Current().Area.Item.TryGetValue("ProductCatalogId", out objProductCatalogId);
8 int productCatalogId = int.Parse(objProductCatalogId.ToString());
9 int currentPageID = Dynamicweb.Frontend.PageView.Current().ID;
10
11 int TopPageID =Dynamicweb.Context.Current.Request.GetInt32("TopPageID");
12 string TopPageElementID = TopPageID.ToString();
13 Dynamicweb.Content.Page TopPage = Dynamicweb.Services.Pages.GetPage(TopPageID);
14 string TopPageName = (TopPage != null && TopPage.ID != 0) ? TopPage.MenuText : "";
15
16 string currentGroupId = Dynamicweb.Context.Current.Request.GetString("GroupID");
17 var currentGroup = Dynamicweb.Ecommerce.Products.Group.GetGroupById(currentGroupId);
18 var breadCrumbGroupList = Firstweb.Custom.CustomCode.Webshop.Frontend.Helpers.EcomGroups.getBreadCrumbGroupList(currentGroup,true);
19
20 bool hasProduct = currentGroup.HasProducts();
21
22 string groupId = currentGroup.Id;
23 string groupNumber = currentGroup.Number;
24 string groupName = currentGroup.Name;
25 var subGroups = currentGroup.Subgroups;
26
27 <div class="setSubmenu active" id="@groupNumber">
28 <div class="breadCrumb">
29 @if (!String.IsNullOrEmpty(TopPageName))
30 {
31 <span data-bind="breadCrumbBack: '@TopPageElementID'">@TopPageName</span>
32 }
33
34 @foreach (var g in breadCrumbGroupList)
35 {
36 var gName = g.Name;
37 var gNumber = (g.Number == groupNumber) ? "" : g.Number;
38 if (!String.IsNullOrEmpty(gNumber))
39 {
40 <span data-bind="breadCrumbBack: '@gNumber'">@gName</span>
41 }
42 else
43 {
44 <span>@gName</span>
45 }
46 }
47
48 @{
49 var prevGroupNumber = "";
50
51 if (breadCrumbGroupList.Count() > 1)
52 {
53 prevGroupNumber = breadCrumbGroupList[breadCrumbGroupList.Count() - 2].Number;
54 }
55 else
56 {
57 prevGroupNumber = TopPageElementID;
58 }
59
60
61 <div class="backBtn" data-bind="breadCrumbBack: '@prevGroupNumber'">@Translate("backbtn", "Tilbage")</div>
62 }
63 </div>
64
65 <div class="submenuItem">
66 <div class="subMenu">
67 <div class="container customContainer">
68 <div class="col-md-12 col-sm-12 col-xs-12">
69 <div class="row">
70 @foreach (var childGroup in subGroups)
71 {
72 string childGroupName = childGroup.Name;
73 string childGroupId = childGroup.Id;
74 string childGroupLink = "/Default.aspx?id=" + currentPageID.ToString() + "&groupid=" + childGroupId;
75
76 bool hasChild = childGroup.HasChildGroups;
77
78 var cGroup = Dynamicweb.Ecommerce.Products.Group.GetGroupById(childGroupId);
79 bool childHasProduct = Dynamicweb.Ecommerce.Products.Group.HasProducts(cGroup);
80
81 if (hasChild)
82 {
83 <div data-bind="loadSubGroup: { href: '@childGroupLink', parent: '@groupNumber', toppageid: '@TopPageID' }" class="menu">
84 <img alt="@childGroupName" src="https://placehold.it/150x100" class="hidden-xs">
85 <div class="name">
86 @childGroupName
87 </div>
88 </div>
89 }
90 else if(childHasProduct)
91 {
92 <a href="/Default.aspx?id=@productCatalogId&groupid=@childGroupId">
93 <div class="menu">
94 <img alt="@childGroupName" src="https://placehold.it/150x100" class="hidden-xs">
95 <div class="name">
96 @childGroupName
97 </div>
98 </div>
99 </a>
100 }
101 }
102 </div>
103 </div>
104 </div>
105 </div>
106 </div>
107
108 @if (hasProduct)
109 {
110 <div class="col-md-12 col-sm-12 col-xs-12 hasProducts">
111 <div class="row">
112 <a class="bigButton" href="/Default.aspx?id=@productCatalogId&groupid=@groupId">
113 @Translate("hasproducts", "Denne varegrupper indeholder også produkter. Tryk her for at gå til produktliste")
114 </a>
115 </div>
116 </div>
117 }
118 </div>
119
120 }