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.TemplateBase`1.Translate(String text, String defaultValue, String cultureName)
   at CompiledRazorTemplates.Dynamic.RazorEngine_fdc1ea89acee4ae596ceb5b65b1d8897.Execute() in B:\Hags_Live_B\Files\Templates\Designs\HagsCore\Paragraph\AssetsSearch.cshtml:line 26
   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.b__0(TextWriter writer)
   at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
   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 @{ 5 string validationMessages = string.Format("messages_{0}.min.js", GetGlobalValue("Global:Area.Lang")); 6 string areaLanguage = GetGlobalValue("Global:Area.Lang"); 7 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")); 8 } 9 10 @*@Scripts.Render("~/bundle/AssetSearch") 11 12 @if (areaLanguage != "en") 13 { 14 // non english validation messages 15 <script src="/Files/Templates/Designs/HagsCore/script/source/libraries/validation/localization/@validationMessages"></script> 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="m-search-primary"> 24 <div class="text-center"> 25 <ul> 26 <li><a class="m-btn-search-options btn btn-default text-uppercase" role="button" href="#advancedsearch-ui" data-toggle="tab">@Translate("AdvancedSearch", "Advanced Search")</a></li> 27 <li><a class="m-btn-search-options btn btn-default text-uppercase" role="button" href="#downloadfinder" data-toggle="tab">@Translate("ProductDownloads", "Product Downloads")</a></li> 28 <li><a class="m-btn-search-options btn btn-default text-uppercase" role="button" href="#productcollection" data-toggle="tab">@Translate("MyProductCollection", "My Product Collection")</a></li> 29 <li><a class="m-btn-search-options btn btn-default text-uppercase" role="button" href="#inspirationfinder" data-toggle="tab">@Translate("InspirationFinder", "Inspiration Finder")</a></li> 30 </ul> 31 </div> 32 </div> 33 34 35 <div class="container"> 36 37 <div class="content"> 38 39 <div class="tab-content"> 40 41 <div class="tab-pane fade" id="advancedsearch-ui"> 42 43 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 44 @using Dynamicweb.Ecommerce.Variants; 45 @using HagsWeb.Library.BusinessObjects.UsersLists; 46 @using HagsWeb.Library.State; 47 @{} 48 49 @*@helper AdvancedSearch(string name) { 50 // your helper can contain code and/or markup, e.g. 51 // var msg = "Hello " + name; 52 // <p>@msg</p> 53 // For more information, visit http://go.microsoft.com/fwlink/?LinkID=204658 54 }*@ 55 56 57 @{ 58 Dynamicweb.Frontend.PageView advSearchPage = Dynamicweb.Frontend.PageView.Current() ?? Dynamicweb.Frontend.PageView.Current(); 59 Dynamicweb.Content.Area advSearchArea = new Dynamicweb.Content.AreaService().GetArea(advSearchPage.AreaID); 60 61 string advancedSearchUrl = Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl((Int32)new Dynamicweb.Content.PageService().GetFirstModulePageForArea(advSearchArea.ID, "Searchv1").ID); 62 63 // Search Results in Session - Phase 2 64 //List<AdvancedSearchState> advancedSearchState = SessionManager.UsersAdvancedSearchState != null ? SessionManager.UsersAdvancedSearchState as List<AdvancedSearchState> : new List<AdvancedSearchState>(); 65 66 67 68 69 70 // Dynamicweb.Frontend.PageView thisPage = Dynamicweb.Frontend.PageView.Current() ?? Dynamicweb.Frontend.PageView.Current(); 71 // var area = Dynamicweb.Content.Area.GetAreaById(thisPage.AreaID); 72 73 //var AnchoringVariants = GlobalAnchoringVariants; // Defined in AssetsSearch.cshtml, the controls' parent 74 75 //Dynamicweb.Frontend.PageView thisPage = Dynamicweb.Frontend.PageView.Current() ?? Dynamicweb.Frontend.PageView.Current(); 76 //var area = Dynamicweb.Content.Area.GetAreaById(thisPage.AreaID); 77 78 //Dynamicweb.Frontend.PageView thisPage = Dynamicweb.Frontend.PageView.Current() ?? Dynamicweb.Frontend.PageView.Current(); 79 //ParagraphCollection pageParagraphCollection = Dynamicweb.Content.Paragraph.GetParagraphsByPageID(thisPage.ID); 80 //string pageId = thisPage.ID.ToString(); 81 82 //var area = Dynamicweb.Content.Area.GetAreaById(thisPage.AreaID); 83 // //var l = area.EcomLanguageId; 84 //string EcomLanguageID = area.EcomLanguageId; 85 //string EcomShopID = area.EcomShopID; 86 87 ////string lang = thisPage.GlobalTags.GetTagByName("LongLang").Value; 88 //string l = thisPage.Area.Values["areaecomlanguageid"].ToString(); 89 } 90 91 <div class="m-search-advanced" style="display:block;visibility:visible;"> 92 <div class="m-search-advanced-panel m-search-advanced-product" style="display:block;visibility:visible;"> 93 <div class="l-page"> 94 <div class="container-fluid"> 95 <nav class="text-center"> 96 <ul class="m-nav-tabs-search nav nav-tabs text-uppercase"> 97 <li id="tabSearchPlay" class="active"><a href="#advancedsearch-Play" data-toggle="tab">@Translate("play", "Play")</a></li> 98 <li id="tabSearchSportFitness"><a href="#advancedsearch-SportFitness" data-toggle="tab">@Translate("sport", "Sport &amp; Fitness")</a></li> 99 <li id="tabSearchParkUrban"><a href="#advancedsearch-ParkUrban" data-toggle="tab">@Translate("park", "Park &amp; Urban")</a></li> 100 <li id="tabSearchMarine"><a href="#advancedsearch-Marine" data-toggle="tab">@Translate("marine", "Marine")</a></li> 101 <li id="tabSearchShade"><a href="#advancedsearch-Shade" data-toggle="tab">@Translate("shade", "Shade")</a></li> 102 </ul> 103 </nav> 104 </div> <!-- container-fluid --> 105 <div class="tab-content"> 106 <div class="tab-pane fade in active" id="advancedsearch-Play"> 107 <form id="search-play" name="search-form" method="get" action="@advancedSearchUrl"> 108 <input type="hidden" name="Products" value="Play" /> 109 <div class="l-page"> 110 <div class="container-fluid"> 111 <div class="form-horizontal"> 112 <fieldset class="m-theme-border-grey"> 113 114 <div class="row"> 115 <div class="col-ms-4 col-sm-4"> 116 <div class="form-group"> 117 <label for="aspProductCode" class="col-sm-5 control-label">@Translate("ProductCode", "Product Code")</label> 118 <div class="col-sm-7"><input type="text" class="form-control search-group" id="aspProductCode" name="ProductCode" /></div> 119 </div> 120 </div> 121 <div class="col-ms-4 col-sm-4"> 122 <div class="form-group"> 123 <label for="aspProductName" class="col-sm-5 control-label">@Translate("Name", "Name")</label> 124 <div class="col-sm-7"><input type="text" class="form-control search-group" id="aspProductName" name="ProductName" /></div> 125 </div> 126 </div> 127 @{ 128 List<VariantOption> PlayAnchoringVariants = new HagsWeb.Library.Methods.AssetSearch.ProductAssets().CheckValidVariantOptions("ATP3", "Play", advSearchArea.EcomLanguageId); 129 130 if (PlayAnchoringVariants.Any()) 131 { 132 <div class="col-ms-4 col-sm-4"> 133 <div class="form-group"> 134 135 <label for="aspAnchoringType" class="col-sm-5 control-label">@Translate("Anchoring", "Anchoring")</label> 136 <div class="col-sm-7"> 137 <select class="form-control" id="aspAnchoringType" name="AnchoringType"> 138 <option value="0">@Translate("SelectAnchoring", "Select Anchoring Type")</option> 139 @foreach (var option in PlayAnchoringVariants) 140 { 141 <option value='@option.Id'>@option.Name</option> 142 } 143 </select> 144 </div> 145 </div> 146 </div> 147 } 148 else 149 { 150 <input type="hidden" name="AnchoringType" value="0" /> 151 } 152 153 } 154 155 </div> <!-- row --> 156 @*<input type="hidden" name="productsInSession" value="@advancedSearchState.Count()" />*@ 157 158 </fieldset> 159 160 161 162 163 </div> <!--form - horizontal--> 164 </div> <!--container - fluid--> 165 </div> <!--l - page--> 166 <div class="m-search-advanced-buttons text-center"> 167 <button class="m-btn-search btn btn-default text-uppercase" type="reset" name="reset">@Translate("Reset", "Reset")</button> 168 <button class="m-btn-search btn btn-default text-uppercase" type="submit">@Translate("Search", "Search")</button> 169 </div> 170 </form> 171 172 @*<script> 173 $("#search-play").validate(); 174 </script>*@ 175 <div id="results-search-play" class="m-search-advanced-results-panel"> 176 177 @*// Search Results in Session - Phase 2 178 @if (advancedSearchState.Any()) 179 { 180 181 foreach (AdvancedSearchState product in advancedSearchState) 182 { 183 @String.Format("{0}", product.Products) 184 } 185 }*@ 186 187 </div> 188 </div> 189 <div class="tab-pane fade in" id="advancedsearch-SportFitness"> 190 <form id="search-sport" name="search-form" method="get" action="@advancedSearchUrl"> 191 <input type="hidden" name="Products" value="Sport" /> 192 <div class="l-page"> 193 <div class="container-fluid"> 194 <div class="form-horizontal"> 195 <fieldset class="m-theme-border-grey"> 196 <div class="row"> 197 <div class="col-ms-4 col-sm-4"> 198 <div class="form-group"> 199 <label for="sfProductCode" class="col-sm-5 control-label">@Translate("ProductCode", "Product Code")</label> 200 <div class="col-sm-7"><input type="text" class="form-control search-group" id="sfProductCode" name="ProductCode" /></div> 201 </div> 202 </div> 203 <div class="col-ms-4 col-sm-4"> 204 <div class="form-group"> 205 <label for="sfProductName" class="col-sm-5 control-label">@Translate("Name", "Name")</label> 206 <div class="col-sm-7"><input type="text" class="form-control search-group" id="sfProductName" name="ProductName" /></div> 207 </div> 208 </div> 209 210 @{ 211 List<VariantOption> SportAnchoringVariants = new HagsWeb.Library.Methods.AssetSearch.ProductAssets().CheckValidVariantOptions("ATP3", "Sport", advSearchArea.EcomLanguageId); 212 213 if (SportAnchoringVariants.Count() > 0) 214 { 215 <div class="col-ms-4 col-sm-4"> 216 <div class="form-group"> 217 <label for="sfAdvancedSearch" class="col-sm-5 control-label">@Translate("Anchoring", "Anchoring")</label> 218 <div class="col-sm-7"> 219 <select class="form-control" id="sfAdvancedSearch" name="AnchoringType"> 220 <option value="0"> @Translate("SelectAnchoring", "Select Anchoring Type") </option> 221 @foreach (var option in SportAnchoringVariants) 222 { 223 <option value='@option.Id'> @option.Name </option> 224 } 225 </select> 226 </div> 227 </div> 228 </div> 229 } 230 else 231 { 232 <input type="hidden" name="AnchoringType" value="0" /> 233 } 234 } 235 236 </div> <!-- row --> 237 </fieldset> 238 </div> <!-- form-horizontal --> 239 </div> <!-- container-fluid --> 240 </div> <!-- l-page --> 241 <div class="m-search-advanced-buttons text-center"> 242 <button class="m-btn-search btn btn-default text-uppercase" type="reset" name="reset">@Translate("Reset", "Reset")</button> 243 <button class="m-btn-search btn btn-default text-uppercase" type="submit">@Translate("Search", "Search")</button> 244 </div> 245 </form> 246 <div id="results-search-sportfitness" class="m-search-advanced-results-panel"> 247 @*// Search Results in Session - Phase 2 248 @if (advancedSearchState.Any()) 249 { 250 251 foreach (AdvancedSearchState product in advancedSearchState) 252 { 253 @String.Format("{0}", product.Products) 254 } 255 }*@ 256 </div> 257 </div> 258 <div class="tab-pane fade in" id="advancedsearch-ParkUrban"> 259 <form id="search-park" name="search-form" method="get" action="@advancedSearchUrl"> 260 <input type="hidden" name="Products" value="Park" /> 261 <div class="l-page"> 262 <div class="container-fluid"> 263 <div class="form-horizontal"> 264 <fieldset class="m-theme-border-grey"> 265 <div class="row"> 266 <div class="col-ms-4 col-sm-4"> 267 <div class="form-group"> 268 <label for="puProductCode" class="col-sm-5 control-label">@Translate("ProductCode", "Product Code")</label> 269 <div class="col-sm-7"><input type="text" class="form-control search-group" id="puProductCode" name="ProductCode" /></div> 270 </div> 271 </div> 272 <div class="col-ms-4 col-sm-4"> 273 <div class="form-group"> 274 <label for="puProductName" class="col-sm-5 control-label">@Translate("Name", "Name")</label> 275 <div class="col-sm-7"><input type="text" class="form-control search-group" id="puProductName" name="ProductName" /></div> 276 </div> 277 </div> 278 @{ 279 List<VariantOption> ParkAnchoringVariants = new HagsWeb.Library.Methods.AssetSearch.ProductAssets().CheckValidVariantOptions("ATP3", "Park", advSearchArea.EcomLanguageId); 280 281 if (ParkAnchoringVariants.Count() > 0) 282 { 283 <div class="col-ms-4 col-sm-4"> 284 <div class="form-group"> 285 <label for="puAnchoringType" class="col-sm-5 control-label">@Translate("Anchoring", "Anchoring")</label> 286 <div class="col-sm-7"> 287 <select class="form-control" id="puAnchoringType" name="AnchoringType"> 288 <option value="0"> @Translate("SelectAnchoring", "Select Anchoring Type") </option> 289 @foreach (var option in ParkAnchoringVariants) 290 { 291 <option value='@option.Id'> @option.Name </option> 292 } 293 </select> 294 </div> 295 </div> 296 </div> 297 } 298 else 299 { 300 <input type="hidden" name="AnchoringType" value="0" /> 301 } 302 } 303 304 </div> <!-- row --> 305 </fieldset> 306 </div> <!-- form-horizontal --> 307 </div> <!-- container-fluid --> 308 </div> <!-- l-page --> 309 <div class="m-search-advanced-buttons text-center"> 310 <button class="m-btn-search btn btn-default text-uppercase" type="reset" name="reset">@Translate("Reset", "Reset")</button> 311 <button class="m-btn-search btn btn-default text-uppercase" type="submit">@Translate("Search", "Search")</button> 312 </div> 313 </form> 314 <div id="results-search-parkurban" class="m-search-advanced-results-panel"> 315 @*// Search Results in Session - Phase 2 316 @if (advancedSearchState.Any()) 317 { 318 319 foreach (AdvancedSearchState product in advancedSearchState) 320 { 321 @String.Format("{0}", product.Products) 322 } 323 }*@ 324 </div> 325 </div> 326 <div class="tab-pane fade in" id="advancedsearch-Marine"> 327 <form id="search-marine" name="search-form" method="get" action="@advancedSearchUrl"> 328 <input type="hidden" name="Products" value="Marine" /> 329 <div class="l-page"> 330 <div class="container-fluid"> 331 <div class="form-horizontal"> 332 <fieldset class="m-theme-border-grey"> 333 <div class="row"> 334 <div class="col-ms-4 col-sm-4"> 335 <div class="form-group"> 336 <label for="mProductCode" class="col-sm-5 control-label">@Translate("ProductCode", "Product Code")</label> 337 <div class="col-sm-7"><input type="text" class="form-control search-group" id="mProductCode" name="ProductCode" /></div> 338 </div> 339 </div> 340 <div class="col-ms-4 col-sm-4"> 341 <div class="form-group"> 342 <label for="mProductName" class="col-sm-5 control-label">@Translate("Name", "Name")</label> 343 <div class="col-sm-7"><input type="text" class="form-control search-group" id="mProductName" name="ProductName" /></div> 344 </div> 345 </div> 346 @{ 347 List<VariantOption> MarineAnchoringVariants = new HagsWeb.Library.Methods.AssetSearch.ProductAssets().CheckValidVariantOptions("ATP3", "Marine", advSearchArea.EcomLanguageId); 348 349 if (MarineAnchoringVariants.Count() > 0) 350 { 351 <div class="col-ms-4 col-sm-4"> 352 <div class="form-group"> 353 <label for="mAnchoringType" class="col-sm-5 control-label">@Translate("Anchoring", "Anchoring")</label> 354 <div class="col-sm-7"> 355 <select class="form-control" id="mAnchoringType" name="AnchoringType"> 356 <option value="0"> @Translate("SelectAnchoring", "Select Anchoring Type") </option> 357 @foreach (var option in MarineAnchoringVariants) 358 { 359 <option value='@option.Id'> @option.Name </option> 360 } 361 </select> 362 </div> 363 </div> 364 </div> 365 } 366 else 367 { 368 <input type="hidden" name="AnchoringType" value="0" /> 369 } 370 } 371 372 </div> <!-- row --> 373 </fieldset> 374 </div> <!-- form-horizontal --> 375 </div> <!-- container-fluid --> 376 </div> <!-- l-page --> 377 <div class="m-search-advanced-buttons text-center"> 378 <button class="m-btn-search btn btn-default text-uppercase" type="reset" name="reset">@Translate("Reset", "Reset")</button> 379 <button class="m-btn-search btn btn-default text-uppercase" type="submit">@Translate("Search", "Search")</button> 380 </div> 381 </form> 382 <div id="results-search-marine" class="m-search-advanced-results-panel"> 383 @*// Search Results in Session - Phase 2 384 @if (advancedSearchState.Any()) 385 { 386 387 foreach (AdvancedSearchState product in advancedSearchState) 388 { 389 @String.Format("{0}", product.Products) 390 } 391 }*@ 392 </div> 393 </div> 394 <div class="tab-pane fade in" id="advancedsearch-Shade"> 395 <form id="search-shade" name="search-form" method="get" action="@advancedSearchUrl"> 396 <input type="hidden" name="Products" value="Shade" /> 397 <div class="l-page"> 398 <div class="container-fluid"> 399 <div class="form-horizontal"> 400 <fieldset class="m-theme-border-grey"> 401 <div class="row"> 402 <div class="col-ms-4 col-sm-4"> 403 <div class="form-group"> 404 <label for="sProductCode" class="col-sm-5 control-label">@Translate("ProductCode", "Product Code")</label> 405 <div class="col-sm-7"><input type="text" class="form-control search-group" id="sProductCode" name="ProductCode" /></div> 406 </div> 407 </div> 408 <div class="col-ms-4 col-sm-4"> 409 <div class="form-group"> 410 <label for="sProductName" class="col-sm-5 control-label">@Translate("Name", "Name")</label> 411 <div class="col-sm-7"><input type="text" class="form-control search-group" id="sProductName" name="ProductName" /></div> 412 </div> 413 </div> 414 @{ 415 List<VariantOption> ShadeAnchoringVariants = new HagsWeb.Library.Methods.AssetSearch.ProductAssets().CheckValidVariantOptions("ATP3", "Shade", advSearchArea.EcomLanguageId); 416 417 if (ShadeAnchoringVariants.Count() > 0) 418 { 419 <div class="col-ms-4 col-sm-4"> 420 <div class="form-group"> 421 <label for="sAnchoringType" class="col-sm-5 control-label">@Translate("Anchoring", "Anchoring")</label> 422 <div class="col-sm-7"> 423 <select class="form-control" id="sAnchoringType" name="AnchoringType"> 424 <option value="0"> @Translate("SelectAnchoring", "Select Anchoring Type") </option> 425 @foreach (var option in ShadeAnchoringVariants) 426 { 427 <option value='@option.Id'> @option.Name </option> 428 } 429 </select> 430 </div> 431 </div> 432 </div> 433 } 434 else 435 { 436 <input type="hidden" name="AnchoringType" value="0" /> 437 } 438 } 439 440 </div> <!-- row --> 441 </fieldset> 442 </div> <!-- form-horizontal --> 443 </div> <!-- container-fluid --> 444 </div> <!-- l-page --> 445 <div class="m-search-advanced-buttons text-center"> 446 <button class="m-btn-search btn btn-default text-uppercase" type="reset" name="reset">@Translate("Reset", "Reset")</button> 447 <button class="m-btn-search btn btn-default text-uppercase" type="submit">@Translate("Search", "Search")</button> 448 </div> 449 </form> 450 <div id="results-search-shade" class="m-search-advanced-results-panel"> 451 @*// Search Results in Session - Phase 2 452 @if (advancedSearchState.Any()) 453 { 454 455 foreach (AdvancedSearchState product in advancedSearchState) 456 { 457 @String.Format("{0}", product.Products) 458 } 459 }*@ 460 </div> 461 </div> 462 </div> 463 </div> <!-- l-page --> 464 </div> <!-- m-search-advanced-product --> 465 <div class="text-center"> 466 <a href="#advancedsearch-ui" 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> 467 </div> 468 </div> 469 470 471 472 @*<h1>@GetGlobalValue("Global:Page.Name")</h1> 473 <h1>@GetValue("Global:Page.Name")</h1> 474 <h1>The Advanced Search Include is here.. PageID = @pageId, l=, LanguageID=@EcomLanguageID, ShopID=@EcomShopID, lang=@l</h1> 475 476 <h1>Set Tag = @GetString("CheckTag") // @GetValue("CheckTag") </h1> 477 478 @foreach (var p in pageParagraphCollection) 479 { 480 var a = p.Template; 481 var b = p.ID.ToString(); 482 var c = p.Text; 483 var f = p.Languages; 484 <ul> 485 <li>@a</li> 486 <li>@b</li> 487 <li>@c</li> 488 <li>@f</li> 489 </ul> 490 }*@ 491 492 493 </div> 494 495 <div class="tab-pane fade" id="downloadfinder"> 496 497 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 498 @using HagsWeb.Library.BusinessObjects.UsersLists; 499 @using HagsWeb.Library.State; 500 @using Dynamicweb.Ecommerce.Variants; 501 @{ 502 Dynamicweb.Frontend.PageView downloadsPage = Dynamicweb.Frontend.PageView.Current() ?? Dynamicweb.Frontend.PageView.Current(); 503 Dynamicweb.Content.Area downloadsArea = new Dynamicweb.Content.AreaService().GetArea(downloadsPage.AreaID); 504 505 string downloadsSearchUrl = Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl((Int32)new Dynamicweb.Content.PageService().GetFirstModulePageForArea(downloadsArea.ID, "Searchv1").ID); 506 507 // This seems to be still valid 508 List<VariantOption> ProductDownloadsAnchoringVariants = new HagsWeb.Library.Methods.AssetSearch.ProductAssets().GetVariantOptions("ATP3", downloadsArea.EcomLanguageId); 509 510 511 #region Search Results in Session - Phase 2 512 513 514 //// Search Results in Session - Phase 2 515 //List<AdvancedSearchState> downloadsSearchState = SessionManager.UsersAdvancedSearchState != null ? SessionManager.UsersAdvancedSearchState as List<AdvancedSearchState> : new List<AdvancedSearchState>(); 516 //List<AdvancedSearchState> brochuresStateList = new List<AdvancedSearchState>(); 517 //List<AdvancedSearchState> dwgsStateList = new List<AdvancedSearchState>(); 518 //List<AdvancedSearchState> certificatesStateList = new List<AdvancedSearchState>(); 519 //List<AdvancedSearchState> installationGuidesStateList = new List<AdvancedSearchState>(); 520 521 //if (downloadsSearchState.Count() > 0) 522 //{ 523 // foreach (AdvancedSearchState downloadsState in downloadsSearchState) 524 // { 525 // if (!String.IsNullOrEmpty(downloadsState.Brochures)) 526 // { 527 // AdvancedSearchState broch = new AdvancedSearchState(); 528 // broch.Brochures = downloadsState.Brochures; 529 // brochuresStateList.Add(broch); 530 // } 531 // if (!String.IsNullOrEmpty(downloadsState.Dwgs)) 532 // { 533 // AdvancedSearchState dwg = new AdvancedSearchState(); 534 // dwg.Dwgs = downloadsState.Dwgs; 535 // dwgsStateList.Add(dwg); 536 // } 537 // if (!String.IsNullOrEmpty(downloadsState.Certificates)) 538 // { 539 // AdvancedSearchState certs = new AdvancedSearchState(); 540 // certs.Certificates = downloadsState.Certificates; 541 // certificatesStateList.Add(certs); 542 // } 543 // if (!String.IsNullOrEmpty(downloadsState.InstallationGuides)) 544 // { 545 // AdvancedSearchState guide = new AdvancedSearchState(); 546 // guide.InstallationGuides = downloadsState.InstallationGuides; 547 // installationGuidesStateList.Add(guide); 548 // } 549 // } 550 551 //} 552 #endregion 553 554 } 555 <div class="m-search-advanced" style="display:block;visibility:visible;"> 556 <div class="m-search-advanced-panel m-search-advanced-product" style="display:block;visibility:visible;"> 557 <div class="l-page"> 558 <div class="container-fluid"> 559 <nav class="text-center"> 560 <ul class="m-nav-tabs-search nav nav-tabs text-uppercase"> 561 <li><a href="#download-brochures" data-toggle="tab">@Translate("Brochures", "Brochures")</a></li> 562 <li><a href="#download-dwg" data-toggle="tab">@Translate("DWGFiles", "DWG Files")</a></li> 563 <li><a href="#download-certificates" data-toggle="tab">@Translate("Certificates", "Certificates")</a></li> 564 <li><a href="#download-installationguides" data-toggle="tab">@Translate("InstallationGuides", "Installation Guides")</a></li> 565 </ul> 566 </nav> 567 <p>@Translate("ProductDownloadsInstructions", "To find product downloads simply click on one of the options above and then use the search form displayed to find all the documents associated with your search.")</p> 568 <p>&nbsp;</p> 569 </div> <!-- container-fluid --> 570 <div class="tab-content"> 571 572 <div class="tab-pane fade in" id="download-brochures"> 573 <form id="search-brochures" name="search-form" method="post" action="@downloadsSearchUrl?Assets=download-brochures"> 574 <div class="l-page"> 575 <div class="container-fluid"> 576 <div class="form-horizontal"> 577 <input type="hidden" name="SearchType" value="download-brochures" /> 578 </div> <!-- form-horizontal --> 579 </div> <!-- container-fluid --> 580 </div> <!-- l-page --> 581 <div class="m-search-advanced-buttons text-center"> 582 @*<button class="m-btn-search btn btn-default text-uppercase" type="submit">@Translate("DownloadAll", "Download All")</button>*@ 583 @*<button class="m-btn-search btn btn-default text-uppercase" type="reset" >@Translate("Reset", "Reset")</button>*@ 584 <button class="m-btn-search btn btn-default text-uppercase" type="submit">@Translate("DisplayBrochures", "Display All Brochures")</button> 585 </div> 586 <div class="l-page"> 587 <div class="container-fluid"> 588 589 <div id="results-brochures" class="m-downloads m-search-advanced-results-panel"> 590 @*// SearchState - Phase 2 591 @if (brochuresStateList.Any()) 592 { 593 foreach (AdvancedSearchState brochures in brochuresStateList) 594 { 595 @String.Format("{0}", brochures.Brochures) 596 } 597 }*@ 598 </div> <!-- m-downloads --> 599 </div> <!-- container-fluid --> 600 </div> <!-- l-page --> 601 </form> 602 </div> 603 604 <div class="tab-pane fade in" id="download-dwg"> 605 <form id="search-dwg" name="search-form" method="post" action="@downloadsSearchUrl?Assets=download-dwg"> 606 <div class="l-page"> 607 <div class="container-fluid"> 608 <div class="form-horizontal"> 609 <fieldset id="dwg-criteria" class="m-theme-border-grey"> 610 <input type="hidden" name="SearchType" value="download-dwg" /> 611 <div class="row"> 612 <div class="col-ms-4 col-sm-4"> 613 <div class="form-group"> 614 <label for="dwgProductCode" class="col-sm-5 control-label">@Translate("ProductCode", "Product Code")</label> 615 <div class="col-sm-7"><input type="text" class="form-control search-group" id="dwgProductCode" name="ProductCode" /></div> 616 </div> 617 </div> 618 <div class="col-ms-4 col-sm-4"> 619 <div class="form-group"> 620 <label for="dwgProductName" class="col-sm-5 control-label">@Translate("Name", "Name")</label> 621 <div class="col-sm-7"><input type="text" class="form-control search-group" id="dwgProductName" name="ProductName" /></div> 622 </div> 623 </div> 624 @if (ProductDownloadsAnchoringVariants.Count() > 0) 625 { 626 627 <div class="col-ms-4 col-sm-4"> 628 <div class="form-group"> 629 630 <label for="dwgAnchoringType" class="col-sm-5 control-label">@Translate("Anchoring", "Anchoring")</label> 631 <div class="col-sm-7"> 632 <select class="form-control" id="dwgAnchoringType" name="AnchoringType"> 633 <option value="0">@Translate("SelectAnchoring", "Select Anchoring Type")</option> 634 @foreach (var option in ProductDownloadsAnchoringVariants) 635 { 636 <option value='@option.Id'>@option.Name</option> 637 } 638 </select> 639 </div> 640 </div> 641 </div> 642 643 } 644 </div> <!-- row --> 645 </fieldset> 646 </div> <!-- form-horizontal --> 647 </div> <!-- container-fluid --> 648 </div> <!-- l-page --> 649 <div class="m-search-advanced-buttons text-center"> 650 @*<button class="m-btn-search btn btn-default text-uppercase" type="submit">@Translate("DownloadAll", "Download All")</button>*@ 651 <button class="m-btn-search btn btn-default text-uppercase" type="reset">@Translate("Reset", "Reset")</button> 652 <button class="m-btn-search btn btn-default text-uppercase" type="submit">@Translate("Search", "Search")</button> 653 </div> 654 <div class="l-page"> 655 <div class="container-fluid"> 656 657 <div id="results-dwgs" class="m-downloads m-search-advanced-results-panel"> 658 @*// SearchState - Phase 2 659 @if (dwgsStateList.Any()) 660 { 661 foreach (AdvancedSearchState dwgs in dwgsStateList) 662 { 663 @String.Format("{0}", dwgs.Dwgs) 664 } 665 }*@ 666 </div> <!-- m-downloads --> 667 668 669 </div> <!-- container-fluid --> 670 </div> <!-- l-page --> 671 </form> 672 </div> 673 <div class="tab-pane fade in" id="download-certificates"> 674 <form id="search-certificates" name="search-form" method="post" action="@downloadsSearchUrl?Assets=download-certificates"> 675 <div class="l-page"> 676 <div class="container-fluid"> 677 <div class="form-horizontal"> 678 <fieldset id="certificates-criteria" class="m-theme-border-grey"> 679 <input type="hidden" name="SearchType" value="download-certificates" /> 680 <div class="row"> 681 <div class="col-ms-4 col-sm-4"> 682 <div class="form-group"> 683 <label for="certsProductCode" class="col-sm-5 control-label">@Translate("ProductCode", "Product Code")</label> 684 <div class="col-sm-7"><input type="text" class="form-control search-group" id="certsProductCode" name="ProductCode" /></div> 685 </div> 686 </div> 687 <div class="col-ms-4 col-sm-4"> 688 <div class="form-group"> 689 <label for="certsProductName" class="col-sm-5 control-label">@Translate("Name", "Name")</label> 690 <div class="col-sm-7"><input type="text" class="form-control search-group" id="certsProductName" name="ProductName" /></div> 691 </div> 692 </div> 693 @if (ProductDownloadsAnchoringVariants.Count() > 0) 694 { 695 696 <div class="col-ms-4 col-sm-4"> 697 <div class="form-group"> 698 699 <label for="certsAnchoringType" class="col-sm-5 control-label">@Translate("Anchoring", "Anchoring")</label> 700 <div class="col-sm-7"> 701 <select class="form-control" id="certsAnchoringType" name="AnchoringType"> 702 <option value="0">@Translate("SelectAnchoring", "Select Anchoring Type")</option> 703 @foreach (var option in ProductDownloadsAnchoringVariants) 704 { 705 <option value='@option.Id'>@option.Name</option> 706 } 707 </select> 708 </div> 709 </div> 710 </div> 711 712 } 713 </div> <!-- row --> 714 </fieldset> 715 </div> <!-- form-horizontal --> 716 </div> <!-- container-fluid --> 717 </div> <!-- l-page --> 718 <div class="m-search-advanced-buttons text-center"> 719 @*<button class="m-btn-search btn btn-default text-uppercase" type="submit">@Translate("DownloadAll", "Download All")</button>*@ 720 <button class="m-btn-search btn btn-default text-uppercase" type="reset">@Translate("Reset", "Reset")</button> 721 <button class="m-btn-search btn btn-default text-uppercase" type="submit">@Translate("Search", "Search")</button> 722 723 <div class="adviceMessage"></div> 724 725 </div> 726 <div class="l-page"> 727 <div class="container-fluid"> 728 729 <div id="results-certificates" class="m-downloads m-search-advanced-results-panel"> 730 @*// SearchState - Phase 2 731 @if (certificatesStateList.Any()) 732 { 733 foreach (AdvancedSearchState certs in certificatesStateList) 734 { 735 @String.Format("{0}", certs.Certificates) 736 } 737 }*@ 738 739 </div> <!-- m-downloads --> 740 741 742 </div> <!-- container-fluid --> 743 744 </div> <!-- l-page --> 745 </form> 746 </div> 747 <div class="tab-pane fade in" id="download-installationguides"> 748 <form id="search-installationguides" name="search-form" method="post" action="@downloadsSearchUrl?Assets=download-installationguides"> 749 <div class="l-page"> 750 <div class="container-fluid"> 751 <div class="form-horizontal"> 752 <fieldset id="installationguides-criteria" class="m-theme-border-grey"> 753 <input type="hidden" name="SearchType" value="download-installationguides" /> 754 <div class="row"> 755 <div class="col-ms-4 col-sm-4"> 756 <div class="form-group"> 757 <label for="guidesProductCode" class="col-sm-5 control-label">@Translate("ProductCode", "Product Code")</label> 758 <div class="col-sm-7"><input type="text" class="form-control search-group" id="guidesProductCode" name="ProductCode" /></div> 759 </div> 760 </div> 761 <div class="col-ms-4 col-sm-4"> 762 <div class="form-group"> 763 <label for="guidesProductName" class="col-sm-5 control-label">@Translate("Name", "Name")</label> 764 <div class="col-sm-7"><input type="text" class="form-control search-group" id="guidesProductName" name="ProductName" /></div> 765 </div> 766 </div> 767 @if (ProductDownloadsAnchoringVariants.Count() > 0) 768 { 769 770 <div class="col-ms-4 col-sm-4"> 771 <div class="form-group"> 772 773 <label for="guidesAnchoringType" class="col-sm-5 control-label">@Translate("Anchoring", "Anchoring")</label> 774 <div class="col-sm-7"> 775 <select class="form-control" id="guidesAnchoringType" name="AnchoringType"> 776 <option value="0">@Translate("SelectAnchoring", "Select Anchoring Type")</option> 777 @foreach (var option in ProductDownloadsAnchoringVariants) 778 { 779 <option value='@option.Id'>@option.Name</option> 780 } 781 </select> 782 </div> 783 </div> 784 </div> 785 786 } 787 </div> <!-- row --> 788 </fieldset> 789 </div> <!-- form-horizontal --> 790 </div> <!-- container-fluid --> 791 </div> <!-- l-page --> 792 <div class="m-search-advanced-buttons text-center"> 793 @*<button class="m-btn-search btn btn-default text-uppercase" type="submit">@Translate("DownloadAll", "Download All")</button>*@ 794 <button class="m-btn-search btn btn-default text-uppercase" type="reset">@Translate("Reset", "Reset")</button> 795 <button class="m-btn-search btn btn-default text-uppercase" type="submit">@Translate("Search", "Search")</button> 796 </div> 797 <div class="l-page"> 798 <div class="container-fluid"> 799 800 <div id="results-guides" class="m-downloads m-search-advanced-results-panel"> 801 @*// SearchState - Phase 2 802 @if (installationGuidesStateList.Any()) 803 { 804 foreach (AdvancedSearchState guide in installationGuidesStateList) 805 { 806 @String.Format("{0}", guide.InstallationGuides) 807 } 808 }*@ 809 810 </div> <!-- m-downloads --> 811 812 813 </div> <!-- container-fluid --> 814 </div> <!-- l-page --> 815 </form> 816 </div> 817 818 </div> 819 </div> <!-- l-page --> 820 </div> <!-- m-search-advanced-product --> 821 <div class="text-center"> 822 <a href="#downloadfinder" 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> 823 </div> 824 </div> 825 826 </div> 827 <div class="tab-pane fade" id="productcollection"> 828 829 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 830 @using HagsWeb.Library.BusinessObjects.UsersLists; 831 @using HagsWeb.Library.Methods.AssetManager; 832 @using HagsWeb.Library.State; 833 @{ 834 Dynamicweb.Frontend.PageView collectionPage = Dynamicweb.Frontend.PageView.Current() ?? Dynamicweb.Frontend.PageView.Current(); 835 Dynamicweb.Content.Area collectionArea = new Dynamicweb.Content.AreaService().GetArea(collectionPage.AreaID); 836 837 List<ProductCollectionItem> productCollectionItems = SessionManager.UsersMyProductCollection != null ? SessionManager.UsersMyProductCollection : new List<ProductCollectionItem>(); 838 bool isQuote = Convert.ToBoolean(collectionArea.Item["QuoteAndOrderChk"]); 839 string downloadingText = HagsWeb.Library.Utilities.DWUtilities.GetTranslation("Downloading...", "Downloading...", collectionArea.Culture); 840 int currentPage = collectionArea.ID; 841 } 842 843 844 <input type="hidden" id="isQuote" value="@isQuote" /> 845 <input type="hidden" id="downloadingText" value="@downloadingText" /> 846 <div class="m-search-advanced" style="display:block;visibility:visible;"> 847 848 <!--<div class="pull-left"><h4 class="clearfix">@Translate("MyProductCollection", "My Product Collection")</h4></div>--> 849 850 <div class="text-center" style="clear:both;padding-top:10px; border-bottom: 2px solid #000; padding-bottom: 20px;"> 851 <div id="btns_MyProductCollection"> 852 @if (productCollectionItems.Any()) 853 { 854 <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> 855 856 <ul class="list-inline print-hide"> 857 @{ 858 List<ProductAsset> imageFileList = new List<ProductAsset>(); 859 List<ProductAsset> dwgFileList = new List<ProductAsset>(); 860 List<ProductAsset> instructionsFileList = new List<ProductAsset>(); 861 string contactUsLink = HagsWeb.Library.Utilities.DWUtilities.GetPageByNavigationTag("ContactUs", currentPage); // /kontakta-oss?mode=quote#contactForms // /kontakta-oss?success=True&mode=quote#contactForms // restful url 862 863 foreach (var item in productCollectionItems) 864 { 865 866 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()) 867 { 868 imageFileList.Add(asset); 869 } 870 871 foreach (ProductAsset asset in item.AssetDownloads.Where(n => n.Index == HagsWeb.Library.Methods.AssetManager.AssetTypeEnum.ToFriendlyAssetName(HagsWeb.Library.Methods.AssetManager.AssetType.Drawings)).ToList()) 872 { 873 dwgFileList.Add(asset); 874 } 875 876 foreach (ProductAsset asset in item.AssetDownloads.Where(n => n.Index == HagsWeb.Library.Methods.AssetManager.AssetTypeEnum.ToFriendlyAssetName(HagsWeb.Library.Methods.AssetManager.AssetType.AssemblyInstructions)).ToList()) 877 { 878 instructionsFileList.Add(asset); 879 } 880 881 882 } 883 884 if (imageFileList.Any()) 885 { 886 <li> 887 <a class="m-btn-xs-more btn btn-default btn-xs text-uppercase" name="download" role="button" data-parent="Bilder" id="imageDownloadButton">@Translate("DownloadImages", "Download Images")</a> 888 </li> 889 } 890 891 if (dwgFileList.Any()) 892 { 893 <li> 894 <a class="m-btn-xs-more btn btn-default btn-xs text-uppercase" name="download" role="button" data-parent="Ritningar" id="dwgDownloadButton">@Translate("DownloadDWGFiles", "Download DWG Files")</a> 895 </li> 896 } 897 898 if (instructionsFileList.Any()) 899 { 900 <li> 901 <a class="m-btn-xs-more btn btn-default btn-xs text-uppercase" name="download" role="button" data-parent="Monteringsanvisningar" id="instructionsDownloadButton">@Translate("DownloadInstallationGuides", "Download Installation Guides")</a> 902 </li> 903 } 904 905 if (isQuote) 906 { 907 if (!string.IsNullOrEmpty(contactUsLink)) 908 { 909 <li> 910 <a class="m-btn-xs-more btn btn-default btn-xs text-uppercase" href="@contactUsLink?mode=QuickQuote" role="button" data-parent="#quickquote" id="quickQuoteButton">@Translate("CreateQuickQuote", "Create a Quick Quote")</a> 911 </li> 912 <li> 913 <a class="m-btn-xs-more btn btn-default btn-xs text-uppercase" href="@contactUsLink?mode=QuickOrder" role="button" data-parent="#quickorder" id="quickOrderButton">@Translate("CreateQuickOrder", "Create a Quick Order")</a> 914 </li> 915 } 916 } 917 918 } 919 </ul> 920 921 } 922 923 <span class="error hide"></span> 924 925 </div> 926 927 <div class="m-search-advanced-results-panel" id="frm_MyProductCollection"> 928 <div class="row2"> 929 @if (productCollectionItems.Any()) 930 { 931 932 foreach (ProductCollectionItem item in productCollectionItems) 933 { 934 935 <div class="l-group-5 text-left"> 936 <div class="m-attractor"> 937 <div class="m-attractor-visual"> 938 <a href="@item.ProductUrlReference"><img src="@item.ProductImageUrl" class="img-responsive m-product-thumb"></a> 939 </div> 940 941 <div class="m-attractor-info m-attractor-info-product"> 942 <h3 class="m-theme-after-yellow m-theme-border-yellow"><a href="@item.ProductUrlReference">@item.ProductName</a></h3> 943 @*<p>@item.ProductDescription</p>*@ 944 <p>@Translate("ProductNumber", "Product Number"): @item.ProductNumber</p> 945 <a class="m-btn-xs-more btn btn-default btn-xs text-uppercase" href="@item.ProductUrlReference" role="button">@Translate("ProductDetails", "Product Details")</a> 946 </div> <!-- attractor-info --> 947 <div class="m-attractor-options"> 948 <ul class="m-icon-links list-unstyled"> 949 <li><a href="" name='productcollection' class="clearfix productcollection" data-removeProductlist="@item.ProductNumber"><img src="/Files/Templates/Designs/HagsCore/res/img/icons/plus.svg" data-nosvg="/Files/Templates/Designs/HagsCore/res/img/icons/plus.png" class="m-icon pull-left"><span>@Translate("RemoveFromCollection", "Remove from my collection")</span></a></li> 950 </ul> 951 </div> <!-- m-attractor-options --> 952 </div> 953 954 </div> 955 956 957 } 958 959 } 960 else 961 { 962 <p>@Translate("NoProductsInCollection", "You have no products in your collection.")</p> 963 } 964 </div> 965 966 </div> 967 968 </div> 969 970 <div class="text-center clearfix" style="clear:both;padding-top:10px;"> 971 <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> 972 </div> 973 </div> 974 975 976 977 </div> 978 979 <div class="tab-pane fade" id="inspirationfinder"> 980 981 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 982 @using System.Linq; 983 @using Dynamicweb.Content.Items; 984 @{ 985 Dynamicweb.Frontend.PageView thePage = Dynamicweb.Frontend.PageView.Current() ?? Dynamicweb.Frontend.PageView.Current(); 986 int areaId = thePage.Area.ID; 987 988 // Get the current area's Paragraphs and find the ItemPublisher Module, returning a link and its paragraph content. Checks if Normalize latin Chars is set in DW 989 var tuple = HagsWeb.Library.Methods.Items.ItemTypeMethods.GetDefaultCaseStudies(areaId, 3); 990 string paraContent = tuple.Item1; 991 int pageId = tuple.Item2; // The Target Case Study Page listin Case study Item Types 992 string hyperLink = tuple.Item3; 993 bool latinCharacters = tuple.Item4; 994 IEnumerable<Item> caseStudies = tuple.Item5; 995 996 //http://developer.dynamicweb-cms.com/documentation/for-developers/item-based-structure/querying-items.aspx 997 998 //string DataFromItem = RenderItemList(new 999 //{ 1000 // ItemType = "Case_Study", 1001 // ListSourceType = "Page", 1002 // ListSourcePage = "62", 1003 // //IncludeAllChildItems = true, 1004 // //IncludeParagraphItems = true, 1005 // ItemFieldsList = "*", 1006 // ListTemplate = "ItemPublisher/List/Case Study List.cshtml", 1007 // ListPageSize = "100" 1008 //}).ToString(); 1009 1010 ////int productsPageId = GetPageIdByNavigationTag("Legals"); 1011 } 1012 1013 <div class="m-search-advanced" style="display:block;visibility:visible;"> 1014 <!--<h4>@Translate("InspirationFinder", "Inspiration Finder")</h4>--> 1015 1016 <div class="m-search-advanced-results-panel fade in" id="frm_InspirationFinder"> 1017 1018 @if (caseStudies.Any()) 1019 { 1020 1021 foreach (var study in caseStudies) 1022 { 1023 string studyId = study["Id"].ToString(); 1024 string Name = study["Study_Heading"] == null ? string.Empty : study["Study_Heading"].ToString(); 1025 string hyperlinkId = study["Read_More_Button"] == null ? String.Empty : study["Read_More_Button"].ToString(); 1026 string hyperlinkText = string.Empty; 1027 string Url = "Default.aspx?ID=" + pageId + "&itemId=Case_Study:" + studyId; 1028 1029 1030 // string sb_trim_Original = System.Text.RegularExpressions.Regex.Replace(Name, @"[., ?\/#!$%\^&\*;:{}=\-_`~()]", "-").ToLower(); 1031 //string sb_trim = System.Text.RegularExpressions.Regex.Replace(Name, @"[., ?\/#!$%\^&\*;:{}=\-_`~]", "-").ToLower(); 1032 1033 //string Url = hyperLink + "/" + sb_trim; 1034 1035 //if (latinCharacters) 1036 //{ 1037 // Url = HagsWeb.Library.Utilities.DWUtilities.NormalizeLatinCharacters(Url); 1038 //} 1039 1040 //string Url = hyperLink + "/" + sb_trim; 1041 string DateCreated = study["Study_Created_Date"] == null ? string.Empty : study["Study_Created_Date"].ToString(); 1042 string Description = study["Study_Content"] == null ? string.Empty : study["Study_Content"].ToString(); 1043 string StudyImages = study["Images"] == null ? string.Empty : study["Images"].ToString(); 1044 Item studyImage = null; 1045 1046 if (!string.IsNullOrEmpty(StudyImages)) 1047 { 1048 studyImage = HagsWeb.Library.Methods.Items.ItemTypeMethods.GetItemImages(study["Images"].ToString(), 1).FirstOrDefault(); 1049 } 1050 1051 1052 <div class="l-group-content col-xs-6 col-ms-4 col-sm-3"> 1053 1054 <div class="m-attractor"> 1055 1056 <div class="m-attractor-visual"> 1057 1058 @if (studyImage == null) 1059 { 1060 <a href="@Url"><img src="/Files/Templates/Designs/HagsCore/res/img/image-not-found.png" class="img-responsive" /></a> 1061 } 1062 else 1063 { 1064 <a href="@Url"><img src='@studyImage["Image"].ToString()' class="img-responsive"></a> 1065 } 1066 1067 1068 @*<img src="/Admin/Public/GetImage.ashx?width=1920&Compression=75&image=@image">*@ 1069 </div> 1070 1071 <div class="m-attractor-info m-attractor-info-product"> 1072 @if (!String.IsNullOrEmpty(Name)) 1073 { 1074 <h3 class="m-theme-after-yellow m-theme-border-yellow"><a href="@Url">@Name</a></h3> 1075 } 1076 @if (!String.IsNullOrEmpty(Description)) 1077 { 1078 <p>@Description</p> 1079 } 1080 1081 @if (!String.IsNullOrEmpty(DateCreated)) 1082 { 1083 <p>@DateCreated</p> 1084 } 1085 1086 @if (!String.IsNullOrEmpty(Url)) 1087 { 1088 <a class="m-btn-xs-more btn btn-default btn-xs text-uppercase" href="@Url" role="button">@Translate("CaseStudyDetails", "Case Study Details")</a> 1089 } 1090 1091 1092 </div> <!-- attractor-info --> 1093 @*<div class="m-attractor-options"> 1094 1095 <ul class="m-icon-links list-unstyled"> 1096 <li><a href="#" class="clearfix"><img src="/Files/Templates/Designs/HagsCore/res/img/icons/plus.svg" data-nosvg="/Files/Templates/Designs/HagsCore/res/img/icons/plus.png" class="m-icon pull-left"><span>Add to my collection</span></a></li> 1097 </ul> 1098 1099 </div>*@ <!-- m-attractor-options --> 1100 1101 </div> <!-- attractor --> 1102 1103 </div> 1104 } 1105 } 1106 1107 </div> 1108 1109 <div class="text-center all-case-studies"> 1110 1111 @if (!String.IsNullOrEmpty(paraContent)) 1112 { 1113 @paraContent 1114 } 1115 1116 @if (!String.IsNullOrEmpty(hyperLink)) 1117 { 1118 <a class="m-btn-xs-more btn btn-default btn-xs text-uppercase" href="@hyperLink" role="button">@Translate("ViewAllCaseStudies", "View all our case studies")</a> 1119 } 1120 1121 </div> 1122 1123 @*<div class="m-search-advanced-buttons text-center"> 1124 <a class="m-btn-xs-more btn btn-default btn-xs text-uppercase" href="@hyperLink" role="button">@Translate("ViewAllCaseStudies", "View all our case studies")</a> 1125 </div>*@ 1126 1127 @*</div>*@ 1128 1129 <div class="text-center"> 1130 <a href="#inspirationfinder" 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> 1131 </div> 1132 </div> 1133 1134 </div> 1135 </div> 1136 1137 <div id="NoResults" style="display:none;">Sorry there are currently no items that match your search criteria. Please refine your search using the options above.</div> 1138 1139 </div> 1140 </div> 1141 1142 <div style="margin-top:50px; display:none;" id="SearchResults">@Translate("YourResults", "YourResults") **Search Results here**</div> 1143 1144 1145 </div> 1146 1147 @Scripts.Render("~/bundle/AssetSearch") 1148 1149 @if (areaLanguage != "en") 1150 { 1151 // non english validation messages 1152 <script src="/Files/Templates/Designs/HagsCore/script/source/libraries/validation/localization/@validationMessages"></script> 1153 } 1154

Lær mere om de materialer vi anvender

 

Legeredskaber og udendørs møbler i nordisk fyrretræ: Funktioner og fordele

Den naturlige æstetik af legeredskaber i fyrretræ gør det til den perfekte tilføjelse i grønne byområder og landlige omgivelser. Træ har også en stor læringsværdi og kan være en del af et stimulerende udendørs læringsprogram, som er designet for at opmuntre både børn og voksne til at opdage og værdsætte naturen.

Uanset om du er på udkig efter fremragende holdbarhed eller god værdi for pengene, er der god grund til at vælge legeredskaber i træ:

Hvorfor er redskaber i fyrretræ stærke og holdbare?

  • Vores fyrretræ er hentet fra skandinaviske skove, hvor træerne vokser langsomt og udvikler en meget tæt og kompakt kvalitet. Vi udvælger omhyggeligt de bedste træer, der er fri for defekter. Nordisk tømmer indeholder en høj andel af hjerteved samt harpiks, som er et naturligt imprægneringsmiddel. Selv ubehandlet træ er ekstremt stærkt og mindre tilbøjelig til at blive udsat for insekt- eller svampeangreb. Vores fyrretræ kan også modstå hårde vejrforhold som lange, kolde vintre eller fugtige omgivelser.
  • Trædelene behandles først med olie, hvilket øger materialets holdbarhed og forskønner dets naturlige udseende. Træet bejdses og efterbehandles for at tilføje et ekstra beskyttende lag og en glat overflade, samt en behagelig subtil farve. Det betyder også, at overfladen er vandafvisende.
  • Alle vores træstolper leveres med galvaniserede stålfødder for at undgå direkte kontakt med jord, hvilket reducerer risikoen for svamp eller råd. Dette tiltag eliminerer også risikoen for græstrimmerskader. Lodrette stolper leveres med en plastikhætte på toppen for yderligere beskyttelse.
  • Bærende stolper er lavet af lamineret træ og er konstrueret til at modstå stort slid og tunge belastninger. Stressaflastende riller hjælper med at stabilisere træet og reducerer risikoen for at træet revner/sprækker.
  • Vores team af ingeniører arbejder også hårdt på velgennemtænkte designløsninger til at forhindre vandstagnation, hvilket fremskynder nedbrydningen af trædelene.
  • Vi er så sikre på, at vores redskaber opfylder de høje kvalitetsstandarder og derfor har vores trækonstruktioner 10 års garanti mod skader på grund af råd.

Nordic pine timber equipment

Vores laminerede træstolper består af tre sammensatte dele. Det er en metode, som øger styrken og reducerer sprækker

Nordic pine timber play equipment from HAGS

Fræsede riller tillader træet at udvide sig eller skrumpe uden at der opstår sprækker.

Hvad er miljøfordelene ved nordisk fyrretræ?

  • Tømmer er et fornyeligt råmateriale, hvilket gør det til et af de mest bæredygtige materialer.
  • Alt vores træ er FSC-certificeret og kommer fra ansvarligt forvaltede skove.
  • Vores træskæringsproces er fuldstændig automatiseret og reducerer mængden af affald.
  • Vi bruger kun vandbaserede bionedbrydelige opløsningsmidler, som ikke har en negativ indvirkning på miljøet.

Sådan opretholdes eller genbruges fyrretræsredskaber og udendørs møbler

  • Tømmer er et naturligt materiale, så det har tendens til at krympe i tørre forhold og udvide, når det er fugtigt. Nogle mindre sprækker og revner kan forekomme over tid, men det vil ikke påvirke redskabets strukturelle integritet, så det er ikke noget at bekymre sig om.
  • Under normale forhold kan vores træredskaber holde i mere end 20 år. Vi anbefaler, at vores kunder regelmæssigt inspicerer for sand og nedfaldne blade, rengør udstyret med et mildt rengøringsmiddel for at fjerne støv eller rester fra luftforurening, og vedligeholder redskaberne med et nyt lag maling hvert 3-5 år, for at vedligeholde det bedst muligt.
  • Da alle vores overflader er bionedbrydelige, kan trækomponenter afbrændes eller genbruges, og der er ingen specifik bortskaffelsesproces.

Nordic pine timber play equipment

Fyrretræsdæk

Nordic pine timber play equipment

Fyrretræspaneler og -vinduer

Nordic pine timber play equipment

Fyrretræsstolper

Nordic pine timber park and urban furniture

Park og by fyrretræsmøbler

Hvorfor vælge stålredskaber?

Stålredskaber har et slankt, moderne udseende og kan bruges til at komplementere moderne arkitektur. Det er også en løsning med lav vedligeholdelse, der giver enestående modstandsdygtighed, hvilket gør den velegnet til udfordrende miljøer.

Vi bruger kun stålkonstruktioner, der er konstrueret til at modstå påvirkninger fra gentagen brug og tunge belastninger. Materialet gennemgår en række behandlinger, som øger dens holdbarhed og modstandsdygtighed.

Hvorfor er stål slidstærkt og robust?

Powder coated steel outdoor recreational equipment

Pulverlakeret stål: proces og finish
Ved at have hele processen in-house har vi fuld kontrol over kvalitet og sikkerhed. Vi får vores overfladebelægningersprodukter og malinger fra Akzo Nobel, den førende globale malingproducent, som er kendt for deres strenge testprocedurer og produkter af høj kvalitet, og HAGS er akkrediteret til at påføre deres belægninger.

stainless steel outdoor recreational equipment

Rustfri stål - Egenskaber og fordele
Rustfrit stål har en glat, æstetisk tiltalende finish og har fremragende korrosionsbestandighed. Det er bedst egnet til de dele, der skal modstå kraftigt slid eller belastning, såsom rutsjebaner eller strukturelle stolper. Grundet sine unikke egenskaber kræver rustfrit stål meget lav vedligeholdelse og vil holde sig pænt i mange år.

Hvor bæredygtige er stålredskaber?

Stål er exceptionelt holdbart, og kvalitets ståludstyr er de facto mere bæredygtigt, da det holder i lang tid og genererer færre affaldsprodukter. Vi har også investeret i F & U for at skabe effektive fremstillingsprocesser, der reducerer miljøpåvirkningen. 

  • Anvendelse af pulverlakering har mindre indflydelse på miljøet end andre lakeringsprocesser: pulveret indeholder ikke noget opløsningsmiddel, er genanvendeligt og fjernes nemt. Det er derfor mere sikkert at anvende og overholder al gældende og foreslået miljølovgivning.
  • Stål er 100% genanvendeligt og kan sælges til tredjepart, når produktets levetid er forbi, hvilket minimerer redskabets samlede omkostning og miljømæssigt fodaftryk.

Garantier

Vi giver en garanti på 25 år på stål og 5 år på pulverlakeringen.

Sådan vedligeholdes og genanvendes stålredskaber

Vores produkter skal inspiceres periodisk for mekaniske skader, og vi anbefaler, at den pulverlakerede finish på stålkomponenter rengøres med et mildt rengøringsmiddel og blød klud. Dette skal generelt udføres mindst en gang om året, medmindre redskaberne ligger inden for 1500 m fra havet, i hvilket tilfælde det skal udføres hver tredje måned.

Eventuelle identificerede brud eller ridser i overfladens belægning skal udbedres inden for en måned:

  • Alt blottet metal skal slibes grundigt med fint kvalitet sandpapir for at fjerne enhver korrosion
  • Rens område med et ikke-aggressivt opløsningsmiddel.
  • Rens område med et ikke-aggressivt opløsningsmiddel.

Kontakt venligst din HAGS-repræsentant for yderligere råd. Anvend en zinkprimer til blottet metal, inden den males igen.

 

Stål anvendes til:

Stainless steel multi-play unit HAGS

Multiplay-enheden UniPlay med rustfri stålstolper

Steel trim trail units HAGS

NRG forhindringsbane

Steel playground swings HAGS

Gyngestativer

MUGA in steel

MUGAS

Hvorfor vælge HPL-legeredskaber?

HPL står for High Pressure Laminates, og det er et meget stærkt materiale med lav vedligeholdelse, der ofte anvendes i bygge- og designindustrien til dæk, yderbeklædning og møbler. HPL har en fremragende modstandsdygtighed og et visuelt tiltalende look. Da den kan modstå stærke kystvinde og høje fugtighedsniveauer, er den velegnet til alle miljøer, herunder kystnære steder.

Hvordan fremstilles HPL?

HPL består af adskillige lag kraftpapir imprægneret med termohærdende harpiks. Efter at et dekorativt papirlag er blevet tilsat på hver side, smeltes lagene sammen med varme og tryk. Resultatet af denne proces er et kompakt, meget hårdt lamineret ark.

Hvad er fordelene ved HPL-legeredskaber?

  • På grund af sin kompakte og tætte kvaliteter er HPL holdbart og ekstremt robust. Det har høj modstand mod ridser, varme, fugt, pletter, gentagen belastning og kraftigt slid.
  • Det er meget nemt at rengøre, og du behøver kun en svamp og et mildt rengøringsmiddel for at fjerne de fleste pletter eller snavs.
  • HPL fås i forskellige farver og teksturer. Skræddersyet grafik kan indgraveres for at skabe visuel opmærksomhed og give lyse farver til legepladsen.

 

HPL bruges til:

HPL play equipment HAGS

UniMini's og UniPlay's paneler, dæk og tage

HPL play equipment HAGS

Sidepaneler til vipper

HPL play equipment HAGS

Sidepaneler til rutsjebaner