Error executing template "/Designs/HagsCore/Paragraph/AssetsSearch.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 Dynamicweb.Rendering.Translation.Source.GetTranslationSource(String designName, String moduleName, String cultureName)
   at Dynamicweb.Rendering.Template.TranslateText(String text, String defaultValue, String cultureName)
   at Dynamicweb.Rendering.TemplateBase`1.Translate(String text, String defaultValue)
   at CompiledRazorTemplates.Dynamic.RazorEngine_2d5bee17f4884339820a56fc337dce56.Execute() in B:\Projects\Hags_Dw915\Files\Templates\Designs\HagsCore\Paragraph\AssetsSearch.cshtml:line 111
   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 Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 2 @using System.Web.Optimization; 3 @using Dynamicweb.Ecommerce.Variants; 4 @using HagsWeb.Library.BusinessObjects.UsersLists 5 @using HagsWeb.Library.State 6 @{ 7 //string validationMessages = string.Format("messages_{0}.min.js", GetGlobalValue("Global:Area.Lang")); 8 //string areaLanguage = GetGlobalValue("Global:Area.Lang"); 9 //string customErrorMessage = HagsWeb.Library.Utilities.DWUtilities.GetTranslation("AdvancedSearchError", "You must provide a Product Code or a Product Name for your Search", GetGlobalValue("Global:Area.LongLang")); 10 //int collectionCount = SessionManager.UsersMyProductCollection != null ? SessionManager.UsersMyProductCollection.Count : 0; 11 //string colnCount = string.Empty; 12 //if (collectionCount > 0) 13 //{ 14 // colnCount = collectionCount > 0 ? string.Format(@"<span class='collection-number'>{0}</span>", collectionCount) : string.Empty; 15 //} 16 } 17 18 @*<input type="hidden" id="CultureLanguage" value="@GetGlobalValue("Global:Area.LongLang")" /> 19 <input type="hidden" id="PageID" value="@GetGlobalValue("Global:Page.ID")" /> 20 <input type="hidden" id="ErrorMessage" value="@customErrorMessage" />*@ 21 22 <div id="advancedSearch"> 23 <div class="container"> 24 <div class="content"> 25 <div class="tab-content"> 26 <div class="tab-pane fade" id="productcollection"> 27 28 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 29 @using System 30 @using System.Collections.Generic 31 @using System.Linq 32 @using Dynamicweb.Ecommerce.Variants 33 @using HagsWeb.Library.BusinessObjects.UsersLists; 34 @using HagsWeb.Library.Methods.AssetManager; 35 @using HagsWeb.Library.Methods.ProductProperties 36 @using HagsWeb.Library.State; 37 38 @{ 39 Dynamicweb.Frontend.PageView collectionPage = Dynamicweb.Frontend.PageView.Current() ?? Dynamicweb.Frontend.PageView.Current(); 40 Dynamicweb.Content.Area collectionArea = new Dynamicweb.Content.AreaService().GetArea(collectionPage.AreaID); 41 42 List<ProductCollectionItem> productCollectionItems = SessionManager.UsersMyProductCollection != null ? SessionManager.UsersMyProductCollection : new List<ProductCollectionItem>(); 43 bool isQuote = Convert.ToBoolean(collectionArea.Item["QuoteAndOrderChk"]); 44 bool isCatalog = true; // Always available; 45 string downloadingText = HagsWeb.Library.Utilities.DWUtilities.GetTranslation("Downloading...", "Downloading...", collectionArea.Culture); 46 int areaId = collectionArea.ID; 47 string currentCollection = Dynamicweb.Context.Current.Request.QueryString.Get("collection"); 48 bool isLoggedIn = String.IsNullOrWhiteSpace(GetGlobalValue("Global:Extranet.UserName")) ? false : true; 49 } 50 51 @if (isCatalog) 52 { 53 54 } 55 56 <script> 57 58 $(document).ready(function () { 59 60 $('#productcollection').on('click','a[data-parent="Bilder"]',function(){ 61 dataLayer.push({'event': 'image_download_collection'}); 62 console.log('download collection event'); 63 }); 64 65 $('#productcollection').on('click','a[data-parent="Ritningar"]',function(){ 66 dataLayer.push({'event': 'dwg_download_collection'}); 67 console.log('dwg download'); 68 }); 69 70 $('#productcollection').on('click','a[data-parent="Monteringsanvisningar"]',function(){ 71 dataLayer.push({'event': 'installation_download_collection'}); 72 console.log('installation download'); 73 }); 74 75 $('#productcollection').on('click','a[data-parent="#quickquote"]',function(){ 76 dataLayer.push({'event': 'quickquote_collection'}); 77 console.log('quickquote_collection'); 78 }); 79 80 $('#productcollection').on('click','a[data-parent="#quickorder"]',function(){ 81 dataLayer.push({'event': 'quickorder_collection'}); 82 console.log('quickorder_collection'); 83 }); 84 85 $('#productcollection').on('click','a[data-target="#CreateCatalog"]',function(){ 86 dataLayer.push({'event': 'printcatalogue_collection'}); 87 console.log('printcatalogue_collection'); 88 }); 89 90 }); 91 92 </script> 93 94 <input type="hidden" id="isQuote" value="@isQuote" /> 95 <input type="hidden" id="downloadingText" value="@downloadingText" /> 96 <input type="hidden" id="collectionCount" value="@productCollectionItems.Count" /> 97 <div class="m-search-advanced" style="display:block;visibility:visible;"> 98 <!--/HagsModules/UsersAssetsSearch/MyProductCollection/ProductCollectionInclude.cshtml--> 99 <div style="clear:both;padding-top:10px; border-bottom: 0px solid #000; padding-bottom: 20px;"> 100 <div class="Instructions" id="instns_MyProductCollection"> 101 102 @if (productCollectionItems.Any() || !string.IsNullOrEmpty(currentCollection)) 103 { 104 105 <h2>@Translate("MyProductCollection", "My Product Collection")</h2> 106 <p>@Translate("ProductCollectionButtonInstructions", "Use the buttons below to either download files, create quotes or create orders based on the products you have added to your collection.")</p> 107 108 } 109 else 110 { 111 <p style="width:80%;margin-left:10%;">@Translate("NoProductsInCollection", "You have no products in your collection.")</p> 112 } 113 </div> 114 115 116 <div class="m-search-advanced-results-panel"> 117 118 <div class="button-holder"> 119 120 @{ 121 string displaySaveButton = "display:none;"; 122 if (productCollectionItems.Count > 0) 123 { 124 displaySaveButton = "display:block;"; 125 } 126 } 127 128 <div class="panel-group account-navigation" style="@displaySaveButton margin-bottom: 16px;"> 129 @if (isLoggedIn) 130 { 131 <h4>@Translate("Save collection?", "Save collection?")</h4> 132 <p>@Translate("You are logged in", "You are currently logged in to HAGS Connect so you can save this collection to your account.")</p> 133 } 134 else 135 { 136 <h4>@Translate("Save collection?", "Save collection?")</h4> 137 <p>@Translate("To save login", "To save this collection into your HAGS Connect simply login using the button below.")</p> 138 } 139 140 <div class="collection-buttons"> 141 <div class="collection-button green"> 142 <a href="#" onclick="return false;" data-toggle="modal" data-target="#saveCollection" class=""><img src="/Files/Templates/Designs/HagsCore/res/img/icons/login.png" alt="Save Collection" itemprop="Save Collection" style="height: 22px; padding-right:4px;" />@Translate("Save collection", "Save this Collection")</a> 143 </div> 144 </div> 145 </div> 146 147 <div id="btns_MyProductCollection"> 148 149 @if (productCollectionItems.Any()) 150 { 151 <div class="panel panel-default"> 152 <div class="panel-heading" role="tab" id="headingOne"> 153 <h4 class="m-panel-title panel-title"> 154 <a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseOne" aria-expanded="true" aria-controls="collapseOne" class="">@Translate("CollectionTools", "Collection tools")</a> 155 </h4> 156 </div> 157 158 <ul class="list-inline print-hide btns_dropdowncollection"> 159 @{ 160 List<ProductAsset> imageFileList = new List<ProductAsset>(); 161 List<ProductAsset> dwgFileList = new List<ProductAsset>(); 162 List<ProductAsset> instructionsFileList = new List<ProductAsset>(); 163 string contactUsLink = HagsWeb.Library.Utilities.DWUtilities.GetPageByNavigationTag("ContactUs", areaId); // /kontakta-oss?mode=quote#contactForms // /kontakta-oss?success=True&mode=quote#contactForms // restful url 164 165 foreach (var item in productCollectionItems) 166 { 167 168 foreach (ProductAsset asset in item.AssetDownloads.Where(n => n.Index == HagsWeb.Library.Methods.AssetManager.AssetTypeEnum.ToFriendlyAssetName(HagsWeb.Library.Methods.AssetManager.AssetType.Images) && n.FileName == item.ProductNumber + ".jpg" || n.FileName == item.ProductNumber + "_Side.jpg" || n.FileName == item.ProductNumber + "_Top.jpg").ToList()) 169 { 170 imageFileList.Add(asset); 171 } 172 173 foreach (ProductAsset asset in item.AssetDownloads.Where(n => n.Index == HagsWeb.Library.Methods.AssetManager.AssetTypeEnum.ToFriendlyAssetName(HagsWeb.Library.Methods.AssetManager.AssetType.Drawings)).ToList()) 174 { 175 dwgFileList.Add(asset); 176 } 177 178 foreach (ProductAsset asset in item.AssetDownloads.Where(n => n.Index == HagsWeb.Library.Methods.AssetManager.AssetTypeEnum.ToFriendlyAssetName(HagsWeb.Library.Methods.AssetManager.AssetType.AssemblyInstructions)).ToList()) 179 { 180 instructionsFileList.Add(asset); 181 } 182 183 184 } 185 186 187 if (imageFileList.Any()) 188 { 189 <li><a class="m-btn-xs-more btn btn-default btn-xs text-uppercase productDownloadButton download" role="button" name="download" data-parent="Bilder" data-productnumber="" data-productname="">@Translate("DownloadImages", "Download Images")</a></li> 190 } 191 192 if (dwgFileList.Any()) 193 { 194 <li><a class="m-btn-xs-more btn btn-default btn-xs text-uppercase productDownloadButton download" role="button" name="download" data-parent="Ritningar" data-productnumber="" data-productname="">@Translate("DownloadDWGFiles", "Download DWG Files")</a></li> 195 } 196 197 if (instructionsFileList.Any()) 198 { 199 <li><a class="m-btn-xs-more btn btn-default btn-xs text-uppercase productDownloadButton download" role="button" name="download" data-parent="Monteringsanvisningar" data-productnumber="" data-productname="">@Translate("InstallationGuides", "Installation Guides")</a></li> 200 } 201 202 203 if (isQuote) 204 { 205 if (!string.IsNullOrEmpty(contactUsLink)) 206 { 207 <li><a class="m-btn-xs-more btn btn-default btn-xs text-uppercase productCreateButton create" href="@contactUsLink?mode=QuickQuote#contactForms" style="width:100%;" role="button" data-parent="#quickquote">@Translate("CreateQuickQuote", "Create a Quick Quote")</a></li> 208 209 // QuickQuote Only on Global 210 if (areaId != 1) 211 { 212 <li><a class="m-btn-xs-more btn btn-default btn-xs text-uppercase productCreateButton create" href="@contactUsLink?mode=QuickOrder#contactForms" style="width:100%;" role="button" data-parent="#quickorder">@Translate("CreateQuickOrder", "Create a Quick Order")</a></li> 213 } 214 215 } 216 } 217 if (isCatalog && String.IsNullOrEmpty(GetGlobalValue("Global:Device.IsMobile"))) 218 { 219 string printShout = Translate("SaveOrPrint", "Save or Print your Product PDF "); 220 221 <li><a class="m-btn-xs-more btn btn-default btn-xs text-uppercase productCreateButton create catalogue" data-toggle="modal" data-target="#CreateCatalog" data-shout="@printShout" Name="catalogPublishing" style="width:100%;" role="button" data-parent="#catalogue">@Translate("CreateYourCatalog", "Create Your Catalogue")</a></li> 222 } 223 } 224 </ul> 225 226 </div> 227 } 228 229 </div> 230 </div> 231 <div class="collection-results-container"> 232 <div class="text-left collection-results" id="prods_MyProductCollection"> 233 234 @if (productCollectionItems.Any()) 235 { 236 237 foreach (ProductCollectionItem item in productCollectionItems) 238 { 239 240 <div class="collection-results-item"> 241 <a href="" name='productcollection' class="clearfix productcollection" data-removeProductlist="@item.ProductNumber"><img src="/Files/Templates/Designs/HagsCore/res/img/icons/minus.svg" data-nosvg="/Files/Templates/Designs/HagsCore/res/img/icons/plus.png" class="m-icon pull-left" alt="@Translate("RemoveFromCollection", "Remove from my collection")" title="@Translate("RemoveFromCollection", "Remove from my collection")"></a> 242 243 <div class="m-attractor"> 244 <div class="m-attractor-visual"> 245 246 247 @if (item.ProductImageUrl != null && !String.IsNullOrEmpty(item.ProductUrlReference)) 248 { 249 <a href="@item.ProductUrlReference"><img src="@item.ProductImageUrl" class="img-responsive m-product-thumb" /></a> 250 } 251 else 252 { 253 <img src="/Files/Templates/Designs/HagsCore/res/img/image-not-found.png" class="img-responsive m-product-thumb" /> 254 } 255 256 257 </div> 258 259 <div class="m-attractor-info m-attractor-info-product"> 260 <h3 class="m-theme-after-yellow m-theme-border-yellow"><a href="@item.ProductUrlReference">@item.ProductName</a></h3> 261 @*<p>@item.ProductDescription</p>*@ 262 @*<p>@Translate("ProductNumber", "Product Number"): @item.ProductNumber</p>*@ 263 <p>@item.ProductNumber</p> 264 265 266 @if (!string.IsNullOrEmpty(item.ProductVariantId)) 267 { 268 Tuple<string, string, string, string, string, string, List<VariantOption>> optionsTuple = ProductFieldValues.GetProductOptions(item.ProductVariantId, collectionArea.EcomLanguageId); 269 270 //optionsTuple.Item1; "Red" 271 //optionsTuple.Item2; "Above Ground" 272 //optionsTuple.Item3; "Wooden Post" 273 //optionsTuple.Item4; "Wooden Post / HPL Panels" 274 //optionsTuple.Item5; "A310.png" 275 //optionsTuple.Item6; "A310-diagram.png" 276 //optionsTuple.Item7; List<VariantOption> Not used here 277 278 <div style="display: block; float: left; overflow: auto; margin-left: 0px; margin-bottom: 8px; width: 100%"> 279 <img src="Files/Templates/Designs/HagsCore/res/img/icons/anchoring/@optionsTuple.Item5" alt="@optionsTuple.Item2" style="display: block; float: left; width: 25px;"> 280 <p style="display: block; float: left; margin-left: 9px; margin-bottom: 0px; margin-top:-3px; font-size: 11px;">@optionsTuple.Item4<br>@optionsTuple.Item1 – @optionsTuple.Item2</p> 281 </div> 282 283 } 284 <!--<a class="m-btn-xs-more btn btn-default btn-xs text-uppercase" href="@item.ProductUrlReference" role="button">@Translate("ProductDetails", "Product Details")</a>--> 285 </div> <!-- attractor-info --> 286 </div> 287 288 </div> 289 290 291 } 292 293 } 294 295 </div> 296 @if (productCollectionItems.Any()) 297 { 298 <div> 299 <a class="m-btn-xs-more btn btn-default btn-xs text-uppercase productDownloadButton download removeall" role="button" data-removeproductlist="All">@Translate("RemoveAll", "Remove All")</a> 300 </div> 301 } 302 </div> 303 304 </div> 305 306 307 </div> 308 309 <div class="text-center clearfix" style="clear:both;padding-top:10px;"> 310 <a href="#productcollection" class="m-search-advanced-close"><img src="/Files/Templates/Designs/HagsCore/res/img/buttons/search-advanced-close.svg" data-nosvg="/Files/Templates/Designs/HagsCore/res/img/buttons/search-advanced-close.png" width="112" alt="Search Advanced Close"></a> 311 </div> 312 </div> 313 314 315 316 @*<div> 317 <p>Is Desktop: @GetGlobalValue("Global:Device.IsDesktop")</p> 318 <p>Is Tablet: @GetGlobalValue("Global:Device.IsTablet")</p> 319 <p>Is Mobile: @GetGlobalValue("Global:Device.IsMobile")</p> 320 </div>*@ 321 322 </div> 323 </div> 324 </div> 325 </div> 326 </div> 327 328 @Scripts.Render("~/bundle/AssetSearch") 329

Denfit Step Walk

Legs

The Denfit Step Walk is an outdoor gym step machine designed to provide an exhilarating and effective workout experience. This versatile equipment allows users to simulate the motion of climbing stairs or scaling a mountain, delivering a challenging cardiovascular workout.

8065069


Green – On installation frame

  •  4 hrs 4
  •  220 220
  •  1.5m² 1.5
  • Assembly Time: 4 hours
  • Length (mm): 1730 mm
  • Width (mm): 840 mm
  • Height (mm): 1233 mm
  • Net Weight: 91,00 kg
  • Fall Height (mm): 220 mm
  • Safety Area : 1.5 m²
Read more about safety areas
Read more about anchoring

Add to my Collection?

Fill your basket with products by clicking "Add to my collection" so that you can create and print your own custom brochure, download the files you need for all the products in one go, or to request a quote.