Welcome to BHG!
Error executing template "/Designs/Bhg/ContentPage/Paragraph/Promotion_Para.cshtml" System.NullReferenceException: Object reference not set to an instance of an object. at CompiledRazorTemplates.Dynamic.RazorEngine_519f2f4d25374e9d9719f61c3bcd63ab.Execute() in D:\DW-Websites\BHG\Ecom\DEV\Custom\Files\Templates\Designs\Bhg\ContentPage\Paragraph\Promotion_Para.cshtml:line 7 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.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel> 2 @using BHGSource.Models 3 @using BHGSource.Service 4 @using Dynamicweb.Frontend 5 @{ 6 string page = ""; 7 page = System.Web.HttpContext.Current.Request.QueryString["page"].ToString(); 8 string pagingurl = "/promotions?page=pagid"; 9 DiscountService discountService = new DiscountService(); 10 campaignInfoList campaignInfoList = new campaignInfoList(); 11 campaignInfoList = discountService.GetCampaign(page); 12 13 PageView pageView = PageView.GetPageviewByPageID(0); 14 string promoWelcomeText = pageView.AreaSettings.GetString("Promotion_Welcome_Text") != null ? pageView.AreaSettings.GetString("Promotion_Welcome_Text") : ""; 15 string promoSubText = pageView.AreaSettings.GetString("Promotion_PageSub_Text") != null ? pageView.AreaSettings.GetString("Promotion_PageSub_Text") : ""; 16 string campPromoUrl = "/Default.aspx?ID=" + GetPageIdByNavigationTag("CampaignProducts") + "&Campaign="; 17 string dashStr = ""; 18 } 19 <link href="/Files/Templates/Designs/Bhg/css/CustomerCenter/promotion.css" rel="stylesheet" /> 20 <!-- CONTENT--> 21 <div id="@(Model.ID)" style="scroll-margin-top: 150px"></div> 22 23 <div id="promotion-page" class="main-container type-c"> 24 <div class="wrapper-1364"> 25 <div class="col-1"></div> 26 <div class="col-2-full"> 27 <h2 class="page-title type-b"> 28 @promoWelcomeText 29 </h2> 30 <p>@promoSubText</p> 31 <div class="promotion-wrap"> 32 <div class="tabs"> 33 <div class="tabs-nav"> 34 <ul> 35 <li class="active"><a href="#all"><img src="/Files/Templates/Designs/Bhg/media/icons/Group 719.png"><br>All</a></li> 36 <li onclick="loadBeautyCampaign(1);"><a href="#beauty"><img src="/Files/Templates/Designs/Bhg/media/icons/Group 286.png"><br>Beauty</a></li> 37 <li onclick="loadWomenCampaign(1);"><a href="#women"><img src="/Files/Templates/Designs/Bhg/media/icons/Path 199.png"><br>Women</a></li> 38 <li onclick="loadMenCampaign(1);"><a href="#men"><img src="/Files/Templates/Designs/Bhg/media/icons/Group 285.png"><br>Men</a></li> 39 <li onclick="loadKidCampaign(1);"><a href="#kids"><img src="/Files/Templates/Designs/Bhg/media/icons/Group 287.png"><br>Kids</a></li> 40 <li onclick="loadHomeCampaign(1);"><a href="#home"><img src="/Files/Templates/Designs/Bhg/media/icons/Group 284.png"><br>Home</a></li> 41 @*<li onclick="loadStoreWide()"><a href="#store-wide"><img src="/Files/Templates/Designs/Bhg/media/icons/Group 1177.png"><br>Store Wide</a></li>*@ 42 </ul> 43 </div> 44 <div class="tabs-content"> 45 <div class="tab active" id="all"> 46 <div class="promotion-box"> 47 48 @{ 49 foreach (campaignInfo campaignInfo in campaignInfoList.campaignInfo) 50 { 51 dashStr = ""; 52 if (campaignInfo.campainStartDate != "" && campaignInfo.campainEndDate != "") 53 { 54 dashStr = "-"; 55 } 56 <div class="promo-item"> 57 <img src="@campaignInfo.campainImage"> 58 <div class="promo-detail"> 59 <div class="date">@campaignInfo.campainStartDate@dashStr@campaignInfo.campainEndDate</div> 60 <div class="title">@campaignInfo.campaignName</div> 61 <a href="@campPromoUrl@campaignInfo.campaignNo">@Translate("Shop Now")</a> 62 </div> 63 <div class="overlay-bg"></div> 64 </div> 65 } 66 } 67 68 </div> 69 <div> 70 <ul class="bhg-orderlist_pager__list"> 71 @if (campaignInfoList.pager.CurrentPage > 1) 72 { 73 <li class="bhg-orderlist_pager__btn bhg-pagenumber"> 74 <a class="pager__num" href="@pagingurl.Replace("pagid", (campaignInfoList.pager.CurrentPage - 1).ToString())"> 75 <i class="fas fa-angle-left addon-page-arrow"></i> 76 </a> 77 </li> 78 } 79 @if (campaignInfoList.pager.Pages != null) 80 { 81 foreach (var p in campaignInfoList.pager.Pages) 82 { 83 <li class="bhg-orderlist_pager__btn bhg-pagenumber @(p == campaignInfoList.pager.CurrentPage ? "active" : "")"> 84 <a class="pager__num add-on-pageno" href="@pagingurl.Replace("pagid", p.ToString())">@p</a> 85 </li> 86 } 87 } 88 @if (campaignInfoList.pager.CurrentPage < campaignInfoList.pager.TotalPages) 89 { 90 <li class="bhg-orderlist_pager__btn bhg-pagenumber"> 91 <a class="pager__num" href="@pagingurl.Replace("pagid", (campaignInfoList.pager.CurrentPage + 1).ToString())"> 92 <i class="fas fa-angle-right addon-page-arrow"></i> 93 </a> 94 </li> 95 } 96 </ul> 97 </div> 98 </div> 99 100 <div class="tab" id="beauty"> 101 102 </div> 103 104 <div class="tab" id="women"> 105 106 </div> 107 108 <div class="tab" id="men"> 109 110 </div> 111 112 <div class="tab" id="kids"> 113 114 </div> 115 116 <div class="tab" id="home"> 117 118 </div> 119 120 <div class="tab" id="store-wide"> 121 122 </div> 123 124 </div> 125 </div> 126 </div> 127 </div> 128 129 </div> 130 </div> 131 132 <script id="beauty-template" type="text/x-handlebars-template"> 133 <div class="promotion-box"> 134 {{#each campaignInfo}} 135 <div class="promo-item"> 136 <img src="{{campainImage}}"> 137 <div class="promo-detail"> 138 <div class="date">{{campainStartDate}} {{campainEndDate}}</div> 139 <div class="title">{{campaignName}}</div> 140 <a href="@campPromoUrl{{campaignNo}}">@Translate("Shop Now")</a> 141 </div> 142 <div class="overlay-bg"></div> 143 </div> 144 {{/each}} 145 </div> 146 <div> 147 <ul class="bhg-orderlist_pager__list"> 148 {{#ifGreater CurrentPage 1}} 149 <li class="bhg-orderlist_pager__btn bhg-pagenumber"> 150 <a class="pager__num" onclick="loadBeautyCampaign('{{minus CurrentPage 1}}')"> 151 <i class="fas fa-angle-left addon-page-arrow"></i> 152 </a> 153 </li> 154 {{/ifGreater}} 155 156 {{#ifNotEquals pageListCount 0}} 157 {{#each pageList}} 158 <li class="bhg-orderlist_pager__btn bhg-pagenumber {{ifPEquals ../CurrentPage pageNo}}"> 159 <a class="pager__num add-on-pageno" onclick="loadBeautyCampaign('{{pageNo}}')">{{pageNo}}</a> 160 </li> 161 {{/each}} 162 {{/ifNotEquals}} 163 164 {{#ifLess CurrentPage TotalPages}} 165 <li class="bhg-orderlist_pager__btn bhg-pagenumber"> 166 <a class="pager__num" onclick="loadBeautyCampaign('{{plus CurrentPage 1}}')"> 167 <i class="fas fa-angle-right addon-page-arrow"></i> 168 </a> 169 </li> 170 {{/ifLess}} 171 </ul> 172 </div> 173 </script> 174 175 <script id="women-template" type="text/x-handlebars-template"> 176 <div class="promotion-box"> 177 {{#each campaignInfo}} 178 <div class="promo-item"> 179 <img src="{{campainImage}}"> 180 <div class="promo-detail"> 181 <div class="date">{{campainStartDate}} {{campainEndDate}}</div> 182 <div class="title">{{campaignName}}</div> 183 <a href="@campPromoUrl{{campaignNo}}">@Translate("Shop Now")</a> 184 </div> 185 <div class="overlay-bg"></div> 186 </div> 187 {{/each}} 188 </div> 189 <div> 190 <ul class="bhg-orderlist_pager__list"> 191 {{#ifGreater CurrentPage 1}} 192 <li class="bhg-orderlist_pager__btn bhg-pagenumber"> 193 <a class="pager__num" onclick="loadWomenCampaign('{{minus CurrentPage 1}}')"> 194 <i class="fas fa-angle-left addon-page-arrow"></i> 195 </a> 196 </li> 197 {{/ifGreater}} 198 199 {{#ifNotEquals pageListCount 0}} 200 {{#each pageList}} 201 <li class="bhg-orderlist_pager__btn bhg-pagenumber {{ifPEquals ../CurrentPage pageNo}}"> 202 <a class="pager__num add-on-pageno" onclick="loadWomenCampaign('{{pageNo}}')">{{pageNo}}</a> 203 </li> 204 {{/each}} 205 {{/ifNotEquals}} 206 207 {{#ifLess CurrentPage TotalPages}} 208 <li class="bhg-orderlist_pager__btn bhg-pagenumber"> 209 <a class="pager__num" onclick="loadWomenCampaign('{{plus CurrentPage 1}}')"> 210 <i class="fas fa-angle-right addon-page-arrow"></i> 211 </a> 212 </li> 213 {{/ifLess}} 214 </ul> 215 </div> 216 </script> 217 218 <script id="men-template" type="text/x-handlebars-template"> 219 <div class="promotion-box"> 220 {{#each campaignInfo}} 221 <div class="promo-item"> 222 <img src="{{campainImage}}"> 223 <div class="promo-detail"> 224 <div class="date">{{campainStartDate}} {{campainEndDate}}</div> 225 <div class="title">{{campaignName}}</div> 226 <a href="@campPromoUrl{{campaignNo}}">@Translate("Shop Now")</a> 227 </div> 228 <div class="overlay-bg"></div> 229 </div> 230 {{/each}} 231 </div> 232 <div> 233 <ul class="bhg-orderlist_pager__list"> 234 {{#ifGreater CurrentPage 1}} 235 <li class="bhg-orderlist_pager__btn bhg-pagenumber"> 236 <a class="pager__num" onclick="loadMenCampaign('{{minus CurrentPage 1}}')"> 237 <i class="fas fa-angle-left addon-page-arrow"></i> 238 </a> 239 </li> 240 {{/ifGreater}} 241 242 {{#ifNotEquals pageListCount 0}} 243 {{#each pageList}} 244 <li class="bhg-orderlist_pager__btn bhg-pagenumber {{ifPEquals ../CurrentPage pageNo}}"> 245 <a class="pager__num add-on-pageno" onclick="loadMenCampaign('{{pageNo}}')">{{pageNo}}</a> 246 </li> 247 {{/each}} 248 {{/ifNotEquals}} 249 250 {{#ifLess CurrentPage TotalPages}} 251 <li class="bhg-orderlist_pager__btn bhg-pagenumber"> 252 <a class="pager__num" onclick="loadMenCampaign('{{plus CurrentPage 1}}')"> 253 <i class="fas fa-angle-right addon-page-arrow"></i> 254 </a> 255 </li> 256 {{/ifLess}} 257 </ul> 258 </div> 259 </script> 260 261 <script id="kid-template" type="text/x-handlebars-template"> 262 <div class="promotion-box"> 263 {{#each campaignInfo}} 264 <div class="promo-item"> 265 <img src="{{campainImage}}"> 266 <div class="promo-detail"> 267 <div class="date">{{campainStartDate}} {{campainEndDate}}</div> 268 <div class="title">{{campaignName}}</div> 269 <a href="@campPromoUrl{{campaignNo}}">@Translate("Shop Now")</a> 270 </div> 271 <div class="overlay-bg"></div> 272 </div> 273 {{/each}} 274 </div> 275 <div> 276 <ul class="bhg-orderlist_pager__list"> 277 {{#ifGreater CurrentPage 1}} 278 <li class="bhg-orderlist_pager__btn bhg-pagenumber"> 279 <a class="pager__num" onclick="loadKidCampaign('{{minus CurrentPage 1}}')"> 280 <i class="fas fa-angle-left addon-page-arrow"></i> 281 </a> 282 </li> 283 {{/ifGreater}} 284 285 {{#ifNotEquals pageListCount 0}} 286 {{#each pageList}} 287 <li class="bhg-orderlist_pager__btn bhg-pagenumber {{ifPEquals ../CurrentPage pageNo}}"> 288 <a class="pager__num add-on-pageno" onclick="loadKidCampaign('{{pageNo}}')">{{pageNo}}</a> 289 </li> 290 {{/each}} 291 {{/ifNotEquals}} 292 293 {{#ifLess CurrentPage TotalPages}} 294 <li class="bhg-orderlist_pager__btn bhg-pagenumber"> 295 <a class="pager__num" onclick="loadKidCampaign('{{plus CurrentPage 1}}')"> 296 <i class="fas fa-angle-right addon-page-arrow"></i> 297 </a> 298 </li> 299 {{/ifLess}} 300 </ul> 301 </div> 302 </script> 303 304 <script id="home-template" type="text/x-handlebars-template"> 305 <div class="promotion-box"> 306 {{#each campaignInfo}} 307 <div class="promo-item"> 308 <img src="{{campainImage}}"> 309 <div class="promo-detail"> 310 <div class="date">{{campainStartDate}} {{campainEndDate}}</div> 311 <div class="title">{{campaignName}}</div> 312 <a href="@campPromoUrl{{campaignNo}}">@Translate("Shop Now")</a> 313 </div> 314 <div class="overlay-bg"></div> 315 </div> 316 {{/each}} 317 </div> 318 <div> 319 <ul class="bhg-orderlist_pager__list"> 320 {{#ifGreater CurrentPage 1}} 321 <li class="bhg-orderlist_pager__btn bhg-pagenumber"> 322 <a class="pager__num" onclick="loadHomeCampaign('{{minus CurrentPage 1}}')"> 323 <i class="fas fa-angle-left addon-page-arrow"></i> 324 </a> 325 </li> 326 {{/ifGreater}} 327 328 {{#ifNotEquals pageListCount 0}} 329 {{#each pageList}} 330 <li class="bhg-orderlist_pager__btn bhg-pagenumber {{ifPEquals ../CurrentPage pageNo}}"> 331 <a class="pager__num add-on-pageno" onclick="loadHomeCampaign('{{pageNo}}')">{{pageNo}}</a> 332 </li> 333 {{/each}} 334 {{/ifNotEquals}} 335 336 {{#ifLess CurrentPage TotalPages}} 337 <li class="bhg-orderlist_pager__btn bhg-pagenumber"> 338 <a class="pager__num" onclick="loadHomeCampaign('{{plus CurrentPage 1}}')"> 339 <i class="fas fa-angle-right addon-page-arrow"></i> 340 </a> 341 </li> 342 {{/ifLess}} 343 </ul> 344 </div> 345 </script> 346 <script id="storewide-template" type="text/x-handlebars-template"> 347 <div class="promotion-box"> 348 {{#each .}} 349 {{#each FlipBookList}} 350 <div class="promo-item"> 351 <img src="{{Image}}"> 352 <div class="promo-detail"> 353 <div class="title">{{FlipBookName}}</div> 354 <a href="/flipbook-details?FlipBookId={{Id}}">@Translate("Shop Now")</a> 355 </div> 356 <div class="overlay-bg"></div> 357 </div> 358 {{/each}} 359 {{/each}} 360 </div> 361 </script> 362 <script> 363 function loadBeautyCampaign(page) { 364 var xhr = new XMLHttpRequest(); 365 xhr.withCredentials = true; 366 xhr.addEventListener("readystatechange", function () { 367 if (xhr.readyState === 4 && xhr.status === 200) { 368 369 try { 370 var data = JSON.parse(xhr.responseText); 371 } catch (err) { 372 console.log(err.message + " in " + xhr.responseText); 373 return; 374 } 375 376 var source1 = $('#beauty-template').html(); 377 var template1 = Handlebars.compile(source1); 378 var html1 = template1(data); 379 document.getElementById("beauty").innerHTML = html1; 380 381 } 382 }); 383 384 var detPath = "/dwapi/Discount/GetFilterCampaignList?page=" + page + "&ptype=beauty"; 385 386 xhr.open("Get", detPath); 387 xhr.setRequestHeader("Content-Type", "application/json"); 388 xhr.send(); 389 } 390 391 function loadWomenCampaign(page) { 392 var xhr = new XMLHttpRequest(); 393 xhr.withCredentials = true; 394 xhr.addEventListener("readystatechange", function () { 395 if (xhr.readyState === 4 && xhr.status === 200) { 396 397 try { 398 var data = JSON.parse(xhr.responseText); 399 } catch (err) { 400 console.log(err.message + " in " + xhr.responseText); 401 return; 402 } 403 404 var source1 = $('#women-template').html(); 405 var template1 = Handlebars.compile(source1); 406 var html1 = template1(data); 407 document.getElementById("women").innerHTML = html1; 408 409 } 410 }); 411 412 var detPath = "/dwapi/Discount/GetFilterCampaignList?page=" + page + "&ptype=women"; 413 414 xhr.open("Get", detPath); 415 xhr.setRequestHeader("Content-Type", "application/json"); 416 xhr.send(); 417 } 418 419 function loadMenCampaign(page) { 420 var xhr = new XMLHttpRequest(); 421 xhr.withCredentials = true; 422 xhr.addEventListener("readystatechange", function () { 423 if (xhr.readyState === 4 && xhr.status === 200) { 424 425 try { 426 var data = JSON.parse(xhr.responseText); 427 } catch (err) { 428 console.log(err.message + " in " + xhr.responseText); 429 return; 430 } 431 432 var source1 = $('#men-template').html(); 433 var template1 = Handlebars.compile(source1); 434 var html1 = template1(data); 435 document.getElementById("men").innerHTML = html1; 436 437 } 438 }); 439 440 var detPath = "/dwapi/Discount/GetFilterCampaignList?page=" + page + "&ptype=men"; 441 442 xhr.open("Get", detPath); 443 xhr.setRequestHeader("Content-Type", "application/json"); 444 xhr.send(); 445 } 446 447 function loadKidCampaign(page) { 448 var xhr = new XMLHttpRequest(); 449 xhr.withCredentials = true; 450 xhr.addEventListener("readystatechange", function () { 451 if (xhr.readyState === 4 && xhr.status === 200) { 452 453 try { 454 var data = JSON.parse(xhr.responseText); 455 } catch (err) { 456 console.log(err.message + " in " + xhr.responseText); 457 return; 458 } 459 460 var source1 = $('#kid-template').html(); 461 var template1 = Handlebars.compile(source1); 462 var html1 = template1(data); 463 document.getElementById("kids").innerHTML = html1; 464 465 } 466 }); 467 468 var detPath = "/dwapi/Discount/GetFilterCampaignList?page=" + page + "&ptype=baby%26kids"; 469 470 xhr.open("Get", detPath); 471 xhr.setRequestHeader("Content-Type", "application/json"); 472 xhr.send(); 473 } 474 475 function loadHomeCampaign(page) { 476 var xhr = new XMLHttpRequest(); 477 xhr.withCredentials = true; 478 xhr.addEventListener("readystatechange", function () { 479 if (xhr.readyState === 4 && xhr.status === 200) { 480 481 try { 482 var data = JSON.parse(xhr.responseText); 483 } catch (err) { 484 console.log(err.message + " in " + xhr.responseText); 485 return; 486 } 487 488 var source1 = $('#home-template').html(); 489 var template1 = Handlebars.compile(source1); 490 var html1 = template1(data); 491 document.getElementById("home").innerHTML = html1; 492 493 } 494 }); 495 496 var detPath = "/dwapi/Discount/GetFilterCampaignList?page=" + page + "&ptype=home%26living"; 497 498 xhr.open("Get", detPath); 499 xhr.setRequestHeader("Content-Type", "application/json"); 500 xhr.send(); 501 } 502 function loadStoreWide() { 503 var xhr = new XMLHttpRequest(); 504 xhr.withCredentials = true; 505 xhr.addEventListener("readystatechange", function () { 506 if (xhr.readyState === 4 && xhr.status === 200) { 507 508 try { 509 var data = JSON.parse(xhr.responseText); 510 } catch (err) { 511 console.log(err.message + " in " + xhr.responseText); 512 return; 513 } 514 515 var source1 = $('#storewide-template').html(); 516 var template1 = Handlebars.compile(source1); 517 var html1 = template1(data); 518 document.getElementById("store-wide").innerHTML = html1; 519 520 } 521 }); 522 523 var detPath = "/flipbookfeed"; 524 525 xhr.open("Get", detPath); 526 xhr.setRequestHeader("Content-Type", "application/json"); 527 xhr.send(); 528 } 529 </script> 530
Install this application on your home screen for quick and easy access when you’re on the go.
Just tap then “Add to Home Screen”