GoBOXX 15 SLM Hero

A compact, ultra-thin, high performance mobile workstation featuring an Intel® Core™ i7 and professional NVIDIA Quadro M2000M graphics. Weighing a mere 4.36 pounds and just .78 inches thick, the GoBOXX SLM series is the perfect mobile worksation for a variety of professional applications. GoBOXX SLM series also features your choice of a FullHD panel or UltraHD resolution display providing ample room for design space and all the toolbars necessary in your software.

The GoBOXX SLM series workstations are available with a Core i7 6700HQ 2.6/3.5GHz Turbo Boost CPU or a high performance Core i7 6920HQ 2.9/3.8GHz Turbo Boost CPU. Both systems feature NVIDIA Quadro M2000M graphics. Please browse below for the model that best suits your needs. NOW AVAILABLE - GoBOXX 17 SLM with 17" FHD panel!

Error compiling template "Designs/eCommerce/eCom/Productlist/ProductSilosList.cshtml"
Line 27: The name 'loopMax' does not exist in the current context
Line 29: The name 'loopMax' does not exist in the current context
Line 31: The name 'loopMax' does not exist in the current context
Line 41: The name 'loopMax' does not exist in the current context
Line 41: The name 'loopMax' does not exist in the current context
Line 56: The name 'loopMax' does not exist in the current context
Line 116: The name 'Regex' does not exist in the current context
Line 116: The name 'RegexOptions' does not exist in the current context
Line 420: The name 'loopMax' does not exist in the current context
Line 422: The name 'loopMax' does not exist in the current context
Line 424: The name 'loopMax' does not exist in the current context
Line 434: The name 'loopMax' does not exist in the current context
Line 434: The name 'loopMax' does not exist in the current context
Line 449: The name 'loopMax' does not exist in the current context
Line 509: The name 'Regex' does not exist in the current context
Line 509: The name 'RegexOptions' does not exist in the current context

1 <div> 2 <div class="silos-header"> 3 <div class="silos-header-inner"> 4 POPULAR CONFIGURATIONS 5 <div class="silos-header-inner-corner"></div> 6 </div> 7 <div class="silos-header-corner"></div> 8 </div> 9 <div class="silos-main"> 10 @{ 11 int loopCount = 0; 12 string productId = System.Web.HttpContext.Current.Request.QueryString["highlight"]; 13 } 14 @*Have a double loop to bring the highlight item to the top*@ 15 @foreach (LoopItem i in GetLoop("Products")) 16 { 17 if (i.GetString("Ecom:Product.ID") == productId){ 18 @*Note: loopCount is set and incremented on the calling page*@ 19 bool hilite; 20 21 try { 22 hilite = !(System.String.IsNullOrEmpty(System.Web.HttpContext.Current.Request["highlight"].Trim())); 23 }catch (Exception ex) { 24 hilite = false; 25 } 26 int cnt = 0; 27 if(loopMax % 4 == 0) { 28 cnt = 4; 29 } else if(loopMax % 3 == 0) { 30 cnt = 3; 31 } else if(loopMax % 2 == 0){ 32 cnt = 2; 33 } else { 34 cnt = 4; 35 } 36 37 string cols = ""; 38 switch(cnt) { 39 case 4: 40 cols = "col-md-3"; 41 if((loopMax - 2) % 4 == 0 && loopCount == loopMax - 2) 42 { 43 cols = cols + " col-md-offset-3"; 44 } 45 break; 46 case 3: 47 cols = "col-md-4"; 48 break; 49 case 2: 50 cols = "col-md-4 col-md-offset-1"; 51 break; 52 case 1: 53 cols = "col-md-3"; 54 break; 55 default: 56 cols = System.Convert.ToString(loopMax); 57 break; 58 } 59 60 string gName = ""; 61 62 var primaryGroup = i.GetString("Ecom:Product.PrimaryGroupID"); 63 foreach (LoopItem j in @i.GetLoop("AssociatedGroups")) 64 { 65 66 if(primaryGroup == @j.GetString("Ecom:Group.ID")) { 67 gName = @j.GetString("Ecom:Group.Name"); 68 } 69 70 } 71 72 <script> 73 var nocomm; 74 if(typeof boxxecom === "undefined") { 75 nocomm = true; 76 }else { 77 nocomm = false; 78 } 79 var product = {}; 80 var cat = '', prodlist = ''; 81 var url = window.location.href; 82 if(url.indexOf('products') > -1) { 83 cat = url.split("/").pop(); 84 prodlist = cat; 85 }else if(url.indexOf('solutions') > -1) { 86 cat = ''; 87 prodlist = url.split("/").pop(); 88 }else { 89 cat = ''; 90 prodlist = url; 91 } 92 var pos = @loopCount; 93 product.name = '@i.GetString("Ecom:Product.Name")'; 94 product.id = '@i.GetValue("Ecom:Product.ID").ToString()'; 95 price = '@i.GetValue("Ecom:Product.Discount.Price.PriceFormatted")'; 96 price = price.replace(/[^0-9\.]+/g,""); 97 if(parseInt(price) == 0) { 98 price = 'contact'; 99 } 100 product.price = price; 101 product.category = '@gName'; 102 product.variant = ''; 103 product.list = prodlist || ''; 104 product.position = String(pos + 1); 105 if(typeof products_storage !== "undefined") 106 products_storage.push(product); 107 </script> 108 109 <div class="@cols @if(hilite && System.Web.HttpContext.Current.Request["highlight"].Trim()==i.GetValue("Ecom:Product.ID.UrlEncoded").ToString()) {<text>highlight</text>} " > 110 <div class="silo ga-product" data-product-id="@i.GetValue("Ecom:Product.ID").ToString()"> 111 @{ 112 string prodName = i.GetString("Ecom:Product.Name"); 113 string sPattern = "^Apexx\\s\\d"; 114 string systemType = ""; 115 string systemShort = ""; 116 if(Regex.IsMatch(prodName, sPattern, RegexOptions.IgnoreCase)) { 117 systemShort = prodName.Substring(0, 7).Replace(" ", string.Empty).ToLower(); 118 systemType = prodName.Substring(0, 7).Replace(" ", string.Empty).ToLower()+".png"; 119 } 120 string imagepath = ""; 121 if(!String.IsNullOrEmpty(i.GetString("Ecom:Product.ImageLarge.Default.Clean"))) { 122 imagepath = i.GetString("Ecom:Product.ImageLarge.Default.Clean"); 123 }else if(!String.IsNullOrEmpty(i.GetString("Ecom:Product.ImageMedium.Default.Clean"))) { 124 imagepath = i.GetString("Ecom:Product.ImageMedium.Default.Clean"); 125 }else if(!String.IsNullOrEmpty(i.GetString("Ecom:Product.ImageSmall.Default.Clean"))) { 126 imagepath = i.GetString("Ecom:Product.ImageSmall.Default.Clean"); 127 } 128 } 129 <div class="product-image"> 130 @if(!String.IsNullOrEmpty(i.GetString("Ecom:Product:Field.NewBest.Value.Clean"))) { 131 var newbest = ""; 132 if(@i.GetString("Ecom:Product:Field.NewBest.Value.Clean") == "Best Seller") { 133 newbest = "bestseller.png"; 134 135 <text> 136 <img src="/Files/Images/@newbest" class="new-best"> 137 </text> 138 } else if(@i.GetString("Ecom:Product:Field.NewBest.Value.Clean") == "New") { 139 newbest = "new.png"; 140 141 <text> 142 <img src="/Files/Images/@newbest" class="new-best"> 143 </text> 144 }else {} 145 } 146 <img src="@imagepath" > 147 </div> 148 <div class="product-title"> 149 @i.GetString("Ecom:Product.Name") 150 </div> 151 <hr> 152 <div class="product-description"> 153 <span class="short-desc"> 154 @i.GetValue("ShortDescription.Clean") 155 </span> 156 </div> 157 <hr> 158 <div class="product-graphic-overview"> 159 <div class="cpu-speed"> 160 @{ 161 int cpubars = 100 - (i.GetInteger("Ecom:Product.CategoryField.Main_System.CPU_Speed_Bars.Value.Clean") * 20); 162 bool cpuoc = i.GetBoolean("Ecom:Product.CategoryField.Main_System.Overclocked.Value.Clean"); 163 } 164 <div class="product-icon"> 165 <img src="/Files/Images/cpu-icon.png" style="padding-top: 3px"> 166 </div> 167 <div class="product-details"> 168 <div class="detail"> 169 <span class="upto">UP To</span> @i.GetValue("Ecom:Product.CategoryField.Main_System.CPU_Speed_Ghz.Value") GHz 170 171 </div> 172 <div class="slider-power" align="right"> 173 <div class="slider"></div> 174 <div class="slider-cover" style="width: @cpubars%"></div> 175 </div> 176 <div class="additional"> 177 <div class="overclocked" data-oc="@cpuoc" style="display:none"> 178 OVERCLOCKED 179 </div> 180 </div> 181 </div> 182 </div> 183 <div class="cpu-cores"> 184 <div class="product-icon"> 185 <img src="/Files/Images/cores-icon.png" style="padding-top: 3px" /> 186 </div> 187 <div class="product-details"> 188 <div class="detail"> 189 <span class="upto">UP To</span> @i.GetValue("Ecom:Product.CategoryField.Main_System.CPU_Cores_Count.Value.Clean") cores 190 </div> 191 <div class="slider-power" align="right"> 192 <div class="slider"></div> 193 @{var corebars = 100 - (i.GetInteger("Ecom:Product.CategoryField.Main_System.CPU_Cores_Bars.Value.Clean") * 20);} 194 <div class="slider-cover" style="width: @corebars%"></div> 195 </div> 196 <div class="additional"> 197 198 </div> 199 </div> 200 </div> 201 <div class="gpu-count"> 202 <div class="product-icon"> 203 <img src="/Files/Images/gpu-icon.png" style="padding-top: 3px" /> 204 </div> 205 <div class="product-details"> 206 <div class="detail"> 207 <span class="upto">UP To</span> @i.GetInteger("Ecom:Product.CategoryField.Main_System.GPU_Density.Value.Clean") GPU 208 </div> 209 <div class="slider-power" align="right"> 210 <div class="slider"></div> 211 @{var gpubars = 100 - (i.GetInteger("Ecom:Product.CategoryField.Main_System.GPU_Bars.Value.Clean") * 20);} 212 <div class="slider-cover " style="width: @gpubars%"></div> 213 </div> 214 <div class="additional"> 215 216 </div> 217 </div> 218 </div> 219 <div class="memory"> 220 <div class="product-icon"> 221 <img src="/Files/Images/memory-icon.png" style="padding-top: 3px" /> 222 </div> 223 <div class="product-details"> 224 <div class="detail"> 225 <span class="upto">UP To</span> @i.GetValue("Ecom:Product.CategoryField.Main_System.Max_memory_configurable.Value.Clean") 226 <div class="small-detail" style="display: normal"> 227 228 </div> 229 </div> 230 <div class="slider-power" align="right"> 231 <div class="slider"></div> 232 @{var rambars = 100 - (i.GetInteger("Ecom:Product.CategoryField.Main_System.RAM_Bars.Value.Clean") * 20);} 233 <div class="slider-cover" style="width: @rambars%"></div> 234 </div> 235 <div class="additional"> 236 237 </div> 238 </div> 239 </div> 240 </div> 241 242 @{ 243 var shorttime = i.GetInteger("Ecom:Product:Field.LeadTimeInDays.Value.Clean") - 2; 244 var leadtime = i.GetInteger("Ecom:Product:Field.LeadTimeInDays.Value.Clean"); 245 } 246 <hr> 247 <div class="shipping"> 248 @{ 249 if(leadtime == 1 && i.GetInteger("Ecom:Product.Stock") > 0) { 250 System.DateTime date = System.DateTime.Now; 251 int currdow = (int)date.DayOfWeek; 252 253 int currHour = date.Hour - 5; 254 if(currHour < 13 && (currdow != 7 || currdow != 0)) { 255 <text> 256 <a href='@i.GetValue("Ecom:Product.LinkGroup.Clean")' class=""> 257 <div class="qs-icon-img @i.GetValue("Ecom:Product.StockLevel")"><img src="/Files/Images/quickship-icon.png" /></div> 258 <div class="qs-available"> 259 <div>Available for QuickShip</div> 260 <div>Ships @date.ToString("MM-dd-yyyy")</div> 261 <div class="qs-details">Click here for details</div> 262 </div> 263 </a> 264 </text> 265 }else { 266 date = date.AddDays(1); 267 int dow = (int)date.DayOfWeek + 1; 268 269 if(dow == 7 || dow == 0) { 270 System.DateTime today = System.DateTime.Today; 271 int daysUntilMonday = ((int) DayOfWeek.Monday - (int) today.DayOfWeek + 7) % 7; 272 date = date.AddDays(daysUntilMonday-1); 273 } 274 <text> 275 <a href='@i.GetValue("Ecom:Product.LinkGroup.Clean")' class=""> 276 <div class="qs-icon-img"><img src="/Files/Images/quickship-icon.png" /></div> 277 <div class="qs-available"> 278 <div>Available for QuickShip</div> 279 <div>Ships @date.ToString("MM-dd-yyyy")</div> 280 <div class="qs-details">Click here for details</div> 281 </div> 282 </a> 283 </text> 284 } 285 }else if(shorttime > 0) { 286 <text>Ships in @shorttime - @leadtime business days.</text> 287 }else { 288 shorttime = 0; 289 leadtime = 0; 290 291 switch (systemShort) 292 { 293 case "apexx1": 294 case "apexx2": 295 shorttime = 5; 296 leadtime = 7; 297 break; 298 case "apexx4": 299 case "apexx5": 300 shorttime = 13; 301 leadtime = 15; 302 break; 303 } 304 <text>Ships in @shorttime - @leadtime business days.</text> 305 306 307 // Command line argument must the the SMTP host. 308 //SmtpClient client = new SmtpClient(); 309 // Specify the e-mail sender. 310 // Create a mailing address that includes a UTF8 character 311 // in the display name. 312 //MailAddress from = new MailAddress("test@boxx.com", "Boxx Website", System.Text.Encoding.UTF8); 313 // Set destinations for the e-mail message. 314 //MailAddress to = new MailAddress("sdinwiddie@boxxtech.com"); 315 // Specify the message content. 316 //MailMessage message = new MailMessage(from, to); 317 //message.To.Add("cjohnson@boxxtech.com"); 318 319 //message.Body = "The "+i.GetString("Ecom:Product.Name")+" does not have a lead time associated with it."; 320 // Include some non-ASCII characters in body and subject. 321 //string someArrows = new string(new char[] {'\u2190', '\u2191', '\u2192', '\u2193'}); 322 //message.Body += Environment.NewLine + someArrows; 323 //message.BodyEncoding = System.Text.Encoding.UTF8; 324 //message.Subject = "Zero lead time found " + i.GetString("Ecom:Product.Name"); 325 //message.SubjectEncoding = System.Text.Encoding.UTF8; 326 //client.Send(message); 327 // Clean up. 328 //message.Dispose(); 329 //Console.WriteLine("Goodbye."); 330 331 332 } 333 } 334 </div> 335 <hr> 336 <div class="specs-short"> 337 <div class="short-specs-header"> 338 <span class="short-specs-header-text"> 339 Basic Configuration Specs 340 </span> 341 </div> 342 <br/> 343 <div class="short-specs-content"> 344 @i.GetValue("Ecom:Product:Field.BasicConfigurationSpecs") 345 </div> 346 </div> 347 <br /> 348 <div class="pricing"> 349 350 @if (!String.IsNullOrEmpty(i.GetString("Ecom:Product:Field.GuruProductNumber"))) { 351 <text>Starting at <br><span class="price">@i.GetValue("Ecom:Product.Discount.Price.PriceFormatted")</span></text> 352 }else { 353 if (!String.IsNullOrEmpty(i.GetString("Ecom:Product.CategoryField.Main_System.Configuration_link.Value"))) { 354 <text>Starting at <br><span class="price">@i.GetValue("Ecom:Product.Discount.Price.PriceFormatted")</span></text> 355 }else { 356 357 } 358 } 359 360 </div> 361 <div class="green-button-100width"> 362 @if (!String.IsNullOrEmpty(i.GetString("Ecom:Product:Field.GuruProductNumber"))) 363 { 364 <text> 365 <script> 366 if(!nocomm) { 367 document.write('<a onclick="return gaTrack(event, this);" href="/Default.aspx?ID=<!--@Item.Area.Configure_Page_ID-->&ProductID=@i.GetString("Ecom:Product.ID")&GuruSessionId=@System.Guid.NewGuid()&ModelNumber=@i.GetString("Ecom:Product:Field.GuruProductNumber")&ConfigName=@i.GetString("Ecom:Product.Name")&referrer=<!--@Global:Pageview.Url-->" class="">CUSTOMIZE &amp; BUY</a>'); 368 } 369 if(nocomm) { 370 document.write('<a href="/Default.aspx?ID=<!--@Item.Area.Configure_Page_ID-->&ProductID=@i.GetString("Ecom:Product.ID")&GuruSessionId=@System.Guid.NewGuid()&ModelNumber=@i.GetString("Ecom:Product:Field.GuruProductNumber")&ConfigName=@i.GetString("Ecom:Product.Name")&referrer=<!--@Global:Pageview.Url-->" class="">CUSTOMIZE &amp; BUY</a>'); 371 } 372 </script> 373 </text> 374 } 375 else 376 { 377 if (!String.IsNullOrEmpty(i.GetString("Ecom:Product.CategoryField.Main_System.Configuration_link.Value"))) { 378 <a href="/@i.GetString("Ecom:Product.CategoryField.Main_System.Configuration_link.Value")" class="">Buy Now</a> 379 } 380 else 381 { 382 <a href="/Default.aspx?ID=<!--@Item.Area.Contact_Us_Page_ID-->" class="">Contact us for price</a> 383 } 384 } 385 </div> 386 <br /> 387 @if(!String.IsNullOrEmpty(i.GetString("Ecom:Product:Field.SpecSheet.Value.FullPath"))) { 388 string specsheet = i.GetString("Ecom:Product:Field.SpecSheet.Value.FullPath"); 389 string specurl = System.Web.HttpUtility.UrlEncode(specsheet); 390 391 <a href="/Admin/Public/DWSDownload.aspx?File=@specurl%3fdownload%3dfalse" target="_blank"> 392 <div class="gray-button-100width"> 393 <text>DETAILED SPEC SHEET</text> 394 </div> 395 </a> 396 397 }else { 398 <div class="gray-button-100width"> 399 <text>NO SPEC SHEET</text> 400 </div> 401 } 402 </div> 403 </div> 404 405 loopCount++; 406 } 407 } 408 @foreach (LoopItem i in GetLoop("Products")) 409 { 410 if (i.GetString("Ecom:Product.ID") != productId){ 411 @*Note: loopCount is set and incremented on the calling page*@ 412 bool hilite; 413 414 try { 415 hilite = !(System.String.IsNullOrEmpty(System.Web.HttpContext.Current.Request["highlight"].Trim())); 416 }catch (Exception ex) { 417 hilite = false; 418 } 419 int cnt = 0; 420 if(loopMax % 4 == 0) { 421 cnt = 4; 422 } else if(loopMax % 3 == 0) { 423 cnt = 3; 424 } else if(loopMax % 2 == 0){ 425 cnt = 2; 426 } else { 427 cnt = 4; 428 } 429 430 string cols = ""; 431 switch(cnt) { 432 case 4: 433 cols = "col-md-3"; 434 if((loopMax - 2) % 4 == 0 && loopCount == loopMax - 2) 435 { 436 cols = cols + " col-md-offset-3"; 437 } 438 break; 439 case 3: 440 cols = "col-md-4"; 441 break; 442 case 2: 443 cols = "col-md-4 col-md-offset-1"; 444 break; 445 case 1: 446 cols = "col-md-3"; 447 break; 448 default: 449 cols = System.Convert.ToString(loopMax); 450 break; 451 } 452 453 string gName = ""; 454 455 var primaryGroup = i.GetString("Ecom:Product.PrimaryGroupID"); 456 foreach (LoopItem j in @i.GetLoop("AssociatedGroups")) 457 { 458 459 if(primaryGroup == @j.GetString("Ecom:Group.ID")) { 460 gName = @j.GetString("Ecom:Group.Name"); 461 } 462 463 } 464 465 <script> 466 var nocomm; 467 if(typeof boxxecom === "undefined") { 468 nocomm = true; 469 }else { 470 nocomm = false; 471 } 472 var product = {}; 473 var cat = '', prodlist = ''; 474 var url = window.location.href; 475 if(url.indexOf('products') > -1) { 476 cat = url.split("/").pop(); 477 prodlist = cat; 478 }else if(url.indexOf('solutions') > -1) { 479 cat = ''; 480 prodlist = url.split("/").pop(); 481 }else { 482 cat = ''; 483 prodlist = url; 484 } 485 var pos = @loopCount; 486 product.name = '@i.GetString("Ecom:Product.Name")'; 487 product.id = '@i.GetValue("Ecom:Product.ID").ToString()'; 488 price = '@i.GetValue("Ecom:Product.Discount.Price.PriceFormatted")'; 489 price = price.replace(/[^0-9\.]+/g,""); 490 if(parseInt(price) == 0) { 491 price = 'contact'; 492 } 493 product.price = price; 494 product.category = '@gName'; 495 product.variant = ''; 496 product.list = prodlist || ''; 497 product.position = String(pos + 1); 498 if(typeof products_storage !== "undefined") 499 products_storage.push(product); 500 </script> 501 502 <div class="@cols @if(hilite && System.Web.HttpContext.Current.Request["highlight"].Trim()==i.GetValue("Ecom:Product.ID.UrlEncoded").ToString()) {<text>highlight</text>} " > 503 <div class="silo ga-product" data-product-id="@i.GetValue("Ecom:Product.ID").ToString()"> 504 @{ 505 string prodName = i.GetString("Ecom:Product.Name"); 506 string sPattern = "^Apexx\\s\\d"; 507 string systemType = ""; 508 string systemShort = ""; 509 if(Regex.IsMatch(prodName, sPattern, RegexOptions.IgnoreCase)) { 510 systemShort = prodName.Substring(0, 7).Replace(" ", string.Empty).ToLower(); 511 systemType = prodName.Substring(0, 7).Replace(" ", string.Empty).ToLower()+".png"; 512 } 513 string imagepath = ""; 514 if(!String.IsNullOrEmpty(i.GetString("Ecom:Product.ImageLarge.Default.Clean"))) { 515 imagepath = i.GetString("Ecom:Product.ImageLarge.Default.Clean"); 516 }else if(!String.IsNullOrEmpty(i.GetString("Ecom:Product.ImageMedium.Default.Clean"))) { 517 imagepath = i.GetString("Ecom:Product.ImageMedium.Default.Clean"); 518 }else if(!String.IsNullOrEmpty(i.GetString("Ecom:Product.ImageSmall.Default.Clean"))) { 519 imagepath = i.GetString("Ecom:Product.ImageSmall.Default.Clean"); 520 } 521 } 522 <div class="product-image"> 523 @if(!String.IsNullOrEmpty(i.GetString("Ecom:Product:Field.NewBest.Value.Clean"))) { 524 var newbest = ""; 525 if(@i.GetString("Ecom:Product:Field.NewBest.Value.Clean") == "Best Seller") { 526 newbest = "bestseller.png"; 527 528 <text> 529 <img src="/Files/Images/@newbest" class="new-best"> 530 </text> 531 } else if(@i.GetString("Ecom:Product:Field.NewBest.Value.Clean") == "New") { 532 newbest = "new.png"; 533 534 <text> 535 <img src="/Files/Images/@newbest" class="new-best"> 536 </text> 537 }else {} 538 } 539 <img src="@imagepath" > 540 </div> 541 <div class="product-title"> 542 @i.GetString("Ecom:Product.Name") 543 </div> 544 <hr> 545 <div class="product-description"> 546 <span class="short-desc"> 547 @i.GetValue("ShortDescription.Clean") 548 </span> 549 </div> 550 <hr> 551 <div class="product-graphic-overview"> 552 <div class="cpu-speed"> 553 @{ 554 int cpubars = 100 - (i.GetInteger("Ecom:Product.CategoryField.Main_System.CPU_Speed_Bars.Value.Clean") * 20); 555 bool cpuoc = i.GetBoolean("Ecom:Product.CategoryField.Main_System.Overclocked.Value.Clean"); 556 } 557 <div class="product-icon"> 558 <img src="/Files/Images/cpu-icon.png" style="padding-top: 3px"> 559 </div> 560 <div class="product-details"> 561 <div class="detail"> 562 <span class="upto">UP To</span> @i.GetValue("Ecom:Product.CategoryField.Main_System.CPU_Speed_Ghz.Value") GHz 563 564 </div> 565 <div class="slider-power" align="right"> 566 <div class="slider"></div> 567 <div class="slider-cover" style="width: @cpubars%"></div> 568 </div> 569 <div class="additional"> 570 <div class="overclocked" data-oc="@cpuoc" style="display:none"> 571 OVERCLOCKED 572 </div> 573 </div> 574 </div> 575 </div> 576 <div class="cpu-cores"> 577 <div class="product-icon"> 578 <img src="/Files/Images/cores-icon.png" style="padding-top: 3px" /> 579 </div> 580 <div class="product-details"> 581 <div class="detail"> 582 <span class="upto">UP To</span> @i.GetValue("Ecom:Product.CategoryField.Main_System.CPU_Cores_Count.Value.Clean") cores 583 </div> 584 <div class="slider-power" align="right"> 585 <div class="slider"></div> 586 @{var corebars = 100 - (i.GetInteger("Ecom:Product.CategoryField.Main_System.CPU_Cores_Bars.Value.Clean") * 20);} 587 <div class="slider-cover" style="width: @corebars%"></div> 588 </div> 589 <div class="additional"> 590 591 </div> 592 </div> 593 </div> 594 <div class="gpu-count"> 595 <div class="product-icon"> 596 <img src="/Files/Images/gpu-icon.png" style="padding-top: 3px" /> 597 </div> 598 <div class="product-details"> 599 <div class="detail"> 600 <span class="upto">UP To</span> @i.GetInteger("Ecom:Product.CategoryField.Main_System.GPU_Density.Value.Clean") GPU 601 </div> 602 <div class="slider-power" align="right"> 603 <div class="slider"></div> 604 @{var gpubars = 100 - (i.GetInteger("Ecom:Product.CategoryField.Main_System.GPU_Bars.Value.Clean") * 20);} 605 <div class="slider-cover " style="width: @gpubars%"></div> 606 </div> 607 <div class="additional"> 608 609 </div> 610 </div> 611 </div> 612 <div class="memory"> 613 <div class="product-icon"> 614 <img src="/Files/Images/memory-icon.png" style="padding-top: 3px" /> 615 </div> 616 <div class="product-details"> 617 <div class="detail"> 618 <span class="upto">UP To</span> @i.GetValue("Ecom:Product.CategoryField.Main_System.Max_memory_configurable.Value.Clean") 619 <div class="small-detail" style="display: normal"> 620 621 </div> 622 </div> 623 <div class="slider-power" align="right"> 624 <div class="slider"></div> 625 @{var rambars = 100 - (i.GetInteger("Ecom:Product.CategoryField.Main_System.RAM_Bars.Value.Clean") * 20);} 626 <div class="slider-cover" style="width: @rambars%"></div> 627 </div> 628 <div class="additional"> 629 630 </div> 631 </div> 632 </div> 633 </div> 634 635 @{ 636 var shorttime = i.GetInteger("Ecom:Product:Field.LeadTimeInDays.Value.Clean") - 2; 637 var leadtime = i.GetInteger("Ecom:Product:Field.LeadTimeInDays.Value.Clean"); 638 } 639 <hr> 640 <div class="shipping"> 641 @{ 642 if(leadtime == 1 && i.GetInteger("Ecom:Product.Stock") > 0) { 643 System.DateTime date = System.DateTime.Now; 644 int currdow = (int)date.DayOfWeek; 645 646 int currHour = date.Hour - 5; 647 if(currHour < 13 && (currdow != 7 || currdow != 0)) { 648 <text> 649 <a href='@i.GetValue("Ecom:Product.LinkGroup.Clean")' class=""> 650 <div class="qs-icon-img @i.GetValue("Ecom:Product.StockLevel")"><img src="/Files/Images/quickship-icon.png" /></div> 651 <div class="qs-available"> 652 <div>Available for QuickShip</div> 653 <div>Ships @date.ToString("MM-dd-yyyy")</div> 654 <div class="qs-details">Click here for details</div> 655 </div> 656 </a> 657 </text> 658 }else { 659 date = date.AddDays(1); 660 int dow = (int)date.DayOfWeek + 1; 661 662 if(dow == 7 || dow == 0) { 663 System.DateTime today = System.DateTime.Today; 664 int daysUntilMonday = ((int) DayOfWeek.Monday - (int) today.DayOfWeek + 7) % 7; 665 date = date.AddDays(daysUntilMonday-1); 666 } 667 <text> 668 <a href='@i.GetValue("Ecom:Product.LinkGroup.Clean")' class=""> 669 <div class="qs-icon-img"><img src="/Files/Images/quickship-icon.png" /></div> 670 <div class="qs-available"> 671 <div>Available for QuickShip</div> 672 <div>Ships @date.ToString("MM-dd-yyyy")</div> 673 <div class="qs-details">Click here for details</div> 674 </div> 675 </a> 676 </text> 677 } 678 }else if(shorttime > 0) { 679 <text>Ships in @shorttime - @leadtime business days.</text> 680 }else { 681 shorttime = 0; 682 leadtime = 0; 683 684 switch (systemShort) 685 { 686 case "apexx1": 687 case "apexx2": 688 shorttime = 5; 689 leadtime = 7; 690 break; 691 case "apexx4": 692 case "apexx5": 693 shorttime = 13; 694 leadtime = 15; 695 break; 696 } 697 <text>Ships in @shorttime - @leadtime business days.</text> 698 699 700 // Command line argument must the the SMTP host. 701 //SmtpClient client = new SmtpClient(); 702 // Specify the e-mail sender. 703 // Create a mailing address that includes a UTF8 character 704 // in the display name. 705 //MailAddress from = new MailAddress("test@boxx.com", "Boxx Website", System.Text.Encoding.UTF8); 706 // Set destinations for the e-mail message. 707 //MailAddress to = new MailAddress("sdinwiddie@boxxtech.com"); 708 // Specify the message content. 709 //MailMessage message = new MailMessage(from, to); 710 //message.To.Add("cjohnson@boxxtech.com"); 711 712 //message.Body = "The "+i.GetString("Ecom:Product.Name")+" does not have a lead time associated with it."; 713 // Include some non-ASCII characters in body and subject. 714 //string someArrows = new string(new char[] {'\u2190', '\u2191', '\u2192', '\u2193'}); 715 //message.Body += Environment.NewLine + someArrows; 716 //message.BodyEncoding = System.Text.Encoding.UTF8; 717 //message.Subject = "Zero lead time found " + i.GetString("Ecom:Product.Name"); 718 //message.SubjectEncoding = System.Text.Encoding.UTF8; 719 //client.Send(message); 720 // Clean up. 721 //message.Dispose(); 722 //Console.WriteLine("Goodbye."); 723 724 725 } 726 } 727 </div> 728 <hr> 729 <div class="specs-short"> 730 <div class="short-specs-header"> 731 <span class="short-specs-header-text"> 732 Basic Configuration Specs 733 </span> 734 </div> 735 <br/> 736 <div class="short-specs-content"> 737 @i.GetValue("Ecom:Product:Field.BasicConfigurationSpecs") 738 </div> 739 </div> 740 <br /> 741 <div class="pricing"> 742 743 @if (!String.IsNullOrEmpty(i.GetString("Ecom:Product:Field.GuruProductNumber"))) { 744 <text>Starting at <br><span class="price">@i.GetValue("Ecom:Product.Discount.Price.PriceFormatted")</span></text> 745 }else { 746 if (!String.IsNullOrEmpty(i.GetString("Ecom:Product.CategoryField.Main_System.Configuration_link.Value"))) { 747 <text>Starting at <br><span class="price">@i.GetValue("Ecom:Product.Discount.Price.PriceFormatted")</span></text> 748 }else { 749 750 } 751 } 752 753 </div> 754 <div class="green-button-100width"> 755 @if (!String.IsNullOrEmpty(i.GetString("Ecom:Product:Field.GuruProductNumber"))) 756 { 757 <text> 758 <script> 759 if(!nocomm) { 760 document.write('<a onclick="return gaTrack(event, this);" href="/Default.aspx?ID=<!--@Item.Area.Configure_Page_ID-->&ProductID=@i.GetString("Ecom:Product.ID")&GuruSessionId=@System.Guid.NewGuid()&ModelNumber=@i.GetString("Ecom:Product:Field.GuruProductNumber")&ConfigName=@i.GetString("Ecom:Product.Name")&referrer=<!--@Global:Pageview.Url-->" class="">CUSTOMIZE &amp; BUY</a>'); 761 } 762 if(nocomm) { 763 document.write('<a href="/Default.aspx?ID=<!--@Item.Area.Configure_Page_ID-->&ProductID=@i.GetString("Ecom:Product.ID")&GuruSessionId=@System.Guid.NewGuid()&ModelNumber=@i.GetString("Ecom:Product:Field.GuruProductNumber")&ConfigName=@i.GetString("Ecom:Product.Name")&referrer=<!--@Global:Pageview.Url-->" class="">CUSTOMIZE &amp; BUY</a>'); 764 } 765 </script> 766 </text> 767 } 768 else 769 { 770 if (!String.IsNullOrEmpty(i.GetString("Ecom:Product.CategoryField.Main_System.Configuration_link.Value"))) { 771 <a href="/@i.GetString("Ecom:Product.CategoryField.Main_System.Configuration_link.Value")" class="">Buy Now</a> 772 } 773 else 774 { 775 <a href="/Default.aspx?ID=<!--@Item.Area.Contact_Us_Page_ID-->" class="">Contact us for price</a> 776 } 777 } 778 </div> 779 <br /> 780 @if(!String.IsNullOrEmpty(i.GetString("Ecom:Product:Field.SpecSheet.Value.FullPath"))) { 781 string specsheet = i.GetString("Ecom:Product:Field.SpecSheet.Value.FullPath"); 782 string specurl = System.Web.HttpUtility.UrlEncode(specsheet); 783 784 <a href="/Admin/Public/DWSDownload.aspx?File=@specurl%3fdownload%3dfalse" target="_blank"> 785 <div class="gray-button-100width"> 786 <text>DETAILED SPEC SHEET</text> 787 </div> 788 </a> 789 790 }else { 791 <div class="gray-button-100width"> 792 <text>NO SPEC SHEET</text> 793 </div> 794 } 795 </div> 796 </div> 797 798 loopCount++; 799 } 800 } 801 </div> 802 <div class="clear"></div> 803 @if (loopCount > 3) 804 { 805 <div class="silos-show-more"> 806 <div class="silos-show-more-corner-left"></div> 807 <div class="silos-show-more-corner-right"></div> 808 <div style=""> 809 <div style=""></div> 810 <div class="silos-show-more-text"> 811 <span class="silos-show-more-showwording silos-show-more-options">Show more configurations</span> 812 <span class="silos-show-more-hidewording silos-call" style="display: none;">Call <!--@Item.Area.Phone_Number--> for more advanced configurations</span> 813 </div> 814 </div> 815 <div><span class="silos-show-more-hidewording silos-show-less-options" style="display: none;">Show fewer options</span></div> 816 </div> 817 } 818 </div> 819 820 <script> 821 $('.silos-show-more').unbind('click').click(function() { 822 $('.silo-in-additionalrow').slideToggle(); 823 $('.silos-show-more-showwording').toggle(); 824 $('.silos-show-more-hidewording').toggle(); 825 }) 826 </script> 827


 

Ideal for:
autodesk_3ds_max autodesk_autocad autodesk_inventor autodesk_maya autodesk_revit cinema_4d modo solidworks catia
Not Even Close

GoBOXX SLM Series Performance Edition vs. the Competition: It’s Not Even Close

Searching for the perfect ultra-thin mobile workstation capable of handling your professional applications? Forget HP and Lenovo—they’re not even in the conversation. And while the Dell M5510 is similar in weight to our new GoBOXX SLM Series with 3.8GHz Turbo Boost and NVIDIA Quadro M2000M graphics, the similarities end there. For real, professional performance, this GoBOXX ultraportable workstation takes the lead.

  • 100MHz faster base frequency and 200MHz faster Turbo Boost
  • 25% more CUDA cores for GPU accelerated tasks like rendering or simulation
  • Twice as much GPU memory

Beastly Power

The GoBOXX SLM Series ultraportable workstations blends power and portability in a completely new way. With a boost clock of 3.5GHz or optional 3.8GHz Turbo Boost Core i7, the GoBOXX SLM Series delivers top of class portable performance where the majority of your workflow is single threaded, like 3ds Max®, Maya®, Solidworks®, Revit®, and more. Its eight threads of processing power also deliver performance when you need to render. With professional NVIDIA Quadro M2000M graphics, the GoBOXX SLM Series deliver a powerful and reliable 3D experience.

Beastly Power

Svelte Beauty

The GoBOXX SLM Series are ultra thin. In fact, they are the thinnest and lightest laptops we’ve ever offered. Weighing a mere 4.36 pounds and just .78 inches thick, this GoBOXX SLM Series are high performance mobile workstation that won’t break your back when carried on the road or out in the field.

Ultra HD Display

The GoBOXX 15 SLM’s optional UltraHD panel (not available on the GoBOXX 17 SLM) delivers over twice the pixels compared to a standard 1080p screen available on standard high-end ultra thin laptops. That means more resolution for displaying source footage in native resolution while still maintaining all of your tool bars, or presenting higher fidelity models when a higher resolution external monitor is not available. In addition, the GoBOXX 15 SLM’s screen features IPS technology, delivering more accurate and consistent color across a wide viewing angle, so when you’re presenting to a customer, you’re both seeing the same quality image. Whether you’re running Dassault Systèmes SolidWorks or CATIA, Autodesk® Revit®, 3ds Max®, or Maya®, Adobe® Premiere Pro® and After Effects®, or other professional applications, the ultra-portable, lightweight GoBOXX workstation featuring stunning UltraHD technology will transform your workflow. Click on the images to the right for full resolution comparisons between 1080p and UltraHD resolution workspaces.

Click the image for a full resolution comparison.


Tech Support That Understands Your Workflow

We don’t offer scripted, tiered support outsourced to the lowest bidder. Legendary BOXX Technical Support, the experienced professionals who understand your applications and can quickly solve your issues, are based right here at BOXX headquarters in Austin, Texas. In addition, our partnerships and certifications with key software vendors enable us to quickly isolate the source of the issue (software or hardware), and get you back to work as soon as possible.


Error compiling template "Designs/eCommerce/eCom/Productlist/ProductSilosList.cshtml"
Line 27: The name 'loopMax' does not exist in the current context
Line 29: The name 'loopMax' does not exist in the current context
Line 31: The name 'loopMax' does not exist in the current context
Line 41: The name 'loopMax' does not exist in the current context
Line 41: The name 'loopMax' does not exist in the current context
Line 56: The name 'loopMax' does not exist in the current context
Line 116: The name 'Regex' does not exist in the current context
Line 116: The name 'RegexOptions' does not exist in the current context
Line 420: The name 'loopMax' does not exist in the current context
Line 422: The name 'loopMax' does not exist in the current context
Line 424: The name 'loopMax' does not exist in the current context
Line 434: The name 'loopMax' does not exist in the current context
Line 434: The name 'loopMax' does not exist in the current context
Line 449: The name 'loopMax' does not exist in the current context
Line 509: The name 'Regex' does not exist in the current context
Line 509: The name 'RegexOptions' does not exist in the current context

1 <div> 2 <div class="silos-header"> 3 <div class="silos-header-inner"> 4 POPULAR CONFIGURATIONS 5 <div class="silos-header-inner-corner"></div> 6 </div> 7 <div class="silos-header-corner"></div> 8 </div> 9 <div class="silos-main"> 10 @{ 11 int loopCount = 0; 12 string productId = System.Web.HttpContext.Current.Request.QueryString["highlight"]; 13 } 14 @*Have a double loop to bring the highlight item to the top*@ 15 @foreach (LoopItem i in GetLoop("Products")) 16 { 17 if (i.GetString("Ecom:Product.ID") == productId){ 18 @*Note: loopCount is set and incremented on the calling page*@ 19 bool hilite; 20 21 try { 22 hilite = !(System.String.IsNullOrEmpty(System.Web.HttpContext.Current.Request["highlight"].Trim())); 23 }catch (Exception ex) { 24 hilite = false; 25 } 26 int cnt = 0; 27 if(loopMax % 4 == 0) { 28 cnt = 4; 29 } else if(loopMax % 3 == 0) { 30 cnt = 3; 31 } else if(loopMax % 2 == 0){ 32 cnt = 2; 33 } else { 34 cnt = 4; 35 } 36 37 string cols = ""; 38 switch(cnt) { 39 case 4: 40 cols = "col-md-3"; 41 if((loopMax - 2) % 4 == 0 && loopCount == loopMax - 2) 42 { 43 cols = cols + " col-md-offset-3"; 44 } 45 break; 46 case 3: 47 cols = "col-md-4"; 48 break; 49 case 2: 50 cols = "col-md-4 col-md-offset-1"; 51 break; 52 case 1: 53 cols = "col-md-3"; 54 break; 55 default: 56 cols = System.Convert.ToString(loopMax); 57 break; 58 } 59 60 string gName = ""; 61 62 var primaryGroup = i.GetString("Ecom:Product.PrimaryGroupID"); 63 foreach (LoopItem j in @i.GetLoop("AssociatedGroups")) 64 { 65 66 if(primaryGroup == @j.GetString("Ecom:Group.ID")) { 67 gName = @j.GetString("Ecom:Group.Name"); 68 } 69 70 } 71 72 <script> 73 var nocomm; 74 if(typeof boxxecom === "undefined") { 75 nocomm = true; 76 }else { 77 nocomm = false; 78 } 79 var product = {}; 80 var cat = '', prodlist = ''; 81 var url = window.location.href; 82 if(url.indexOf('products') > -1) { 83 cat = url.split("/").pop(); 84 prodlist = cat; 85 }else if(url.indexOf('solutions') > -1) { 86 cat = ''; 87 prodlist = url.split("/").pop(); 88 }else { 89 cat = ''; 90 prodlist = url; 91 } 92 var pos = @loopCount; 93 product.name = '@i.GetString("Ecom:Product.Name")'; 94 product.id = '@i.GetValue("Ecom:Product.ID").ToString()'; 95 price = '@i.GetValue("Ecom:Product.Discount.Price.PriceFormatted")'; 96 price = price.replace(/[^0-9\.]+/g,""); 97 if(parseInt(price) == 0) { 98 price = 'contact'; 99 } 100 product.price = price; 101 product.category = '@gName'; 102 product.variant = ''; 103 product.list = prodlist || ''; 104 product.position = String(pos + 1); 105 if(typeof products_storage !== "undefined") 106 products_storage.push(product); 107 </script> 108 109 <div class="@cols @if(hilite && System.Web.HttpContext.Current.Request["highlight"].Trim()==i.GetValue("Ecom:Product.ID.UrlEncoded").ToString()) {<text>highlight</text>} " > 110 <div class="silo ga-product" data-product-id="@i.GetValue("Ecom:Product.ID").ToString()"> 111 @{ 112 string prodName = i.GetString("Ecom:Product.Name"); 113 string sPattern = "^Apexx\\s\\d"; 114 string systemType = ""; 115 string systemShort = ""; 116 if(Regex.IsMatch(prodName, sPattern, RegexOptions.IgnoreCase)) { 117 systemShort = prodName.Substring(0, 7).Replace(" ", string.Empty).ToLower(); 118 systemType = prodName.Substring(0, 7).Replace(" ", string.Empty).ToLower()+".png"; 119 } 120 string imagepath = ""; 121 if(!String.IsNullOrEmpty(i.GetString("Ecom:Product.ImageLarge.Default.Clean"))) { 122 imagepath = i.GetString("Ecom:Product.ImageLarge.Default.Clean"); 123 }else if(!String.IsNullOrEmpty(i.GetString("Ecom:Product.ImageMedium.Default.Clean"))) { 124 imagepath = i.GetString("Ecom:Product.ImageMedium.Default.Clean"); 125 }else if(!String.IsNullOrEmpty(i.GetString("Ecom:Product.ImageSmall.Default.Clean"))) { 126 imagepath = i.GetString("Ecom:Product.ImageSmall.Default.Clean"); 127 } 128 } 129 <div class="product-image"> 130 @if(!String.IsNullOrEmpty(i.GetString("Ecom:Product:Field.NewBest.Value.Clean"))) { 131 var newbest = ""; 132 if(@i.GetString("Ecom:Product:Field.NewBest.Value.Clean") == "Best Seller") { 133 newbest = "bestseller.png"; 134 135 <text> 136 <img src="/Files/Images/@newbest" class="new-best"> 137 </text> 138 } else if(@i.GetString("Ecom:Product:Field.NewBest.Value.Clean") == "New") { 139 newbest = "new.png"; 140 141 <text> 142 <img src="/Files/Images/@newbest" class="new-best"> 143 </text> 144 }else {} 145 } 146 <img src="@imagepath" > 147 </div> 148 <div class="product-title"> 149 @i.GetString("Ecom:Product.Name") 150 </div> 151 <hr> 152 <div class="product-description"> 153 <span class="short-desc"> 154 @i.GetValue("ShortDescription.Clean") 155 </span> 156 </div> 157 <hr> 158 <div class="product-graphic-overview"> 159 <div class="cpu-speed"> 160 @{ 161 int cpubars = 100 - (i.GetInteger("Ecom:Product.CategoryField.Main_System.CPU_Speed_Bars.Value.Clean") * 20); 162 bool cpuoc = i.GetBoolean("Ecom:Product.CategoryField.Main_System.Overclocked.Value.Clean"); 163 } 164 <div class="product-icon"> 165 <img src="/Files/Images/cpu-icon.png" style="padding-top: 3px"> 166 </div> 167 <div class="product-details"> 168 <div class="detail"> 169 <span class="upto">UP To</span> @i.GetValue("Ecom:Product.CategoryField.Main_System.CPU_Speed_Ghz.Value") GHz 170 171 </div> 172 <div class="slider-power" align="right"> 173 <div class="slider"></div> 174 <div class="slider-cover" style="width: @cpubars%"></div> 175 </div> 176 <div class="additional"> 177 <div class="overclocked" data-oc="@cpuoc" style="display:none"> 178 OVERCLOCKED 179 </div> 180 </div> 181 </div> 182 </div> 183 <div class="cpu-cores"> 184 <div class="product-icon"> 185 <img src="/Files/Images/cores-icon.png" style="padding-top: 3px" /> 186 </div> 187 <div class="product-details"> 188 <div class="detail"> 189 <span class="upto">UP To</span> @i.GetValue("Ecom:Product.CategoryField.Main_System.CPU_Cores_Count.Value.Clean") cores 190 </div> 191 <div class="slider-power" align="right"> 192 <div class="slider"></div> 193 @{var corebars = 100 - (i.GetInteger("Ecom:Product.CategoryField.Main_System.CPU_Cores_Bars.Value.Clean") * 20);} 194 <div class="slider-cover" style="width: @corebars%"></div> 195 </div> 196 <div class="additional"> 197 198 </div> 199 </div> 200 </div> 201 <div class="gpu-count"> 202 <div class="product-icon"> 203 <img src="/Files/Images/gpu-icon.png" style="padding-top: 3px" /> 204 </div> 205 <div class="product-details"> 206 <div class="detail"> 207 <span class="upto">UP To</span> @i.GetInteger("Ecom:Product.CategoryField.Main_System.GPU_Density.Value.Clean") GPU 208 </div> 209 <div class="slider-power" align="right"> 210 <div class="slider"></div> 211 @{var gpubars = 100 - (i.GetInteger("Ecom:Product.CategoryField.Main_System.GPU_Bars.Value.Clean") * 20);} 212 <div class="slider-cover " style="width: @gpubars%"></div> 213 </div> 214 <div class="additional"> 215 216 </div> 217 </div> 218 </div> 219 <div class="memory"> 220 <div class="product-icon"> 221 <img src="/Files/Images/memory-icon.png" style="padding-top: 3px" /> 222 </div> 223 <div class="product-details"> 224 <div class="detail"> 225 <span class="upto">UP To</span> @i.GetValue("Ecom:Product.CategoryField.Main_System.Max_memory_configurable.Value.Clean") 226 <div class="small-detail" style="display: normal"> 227 228 </div> 229 </div> 230 <div class="slider-power" align="right"> 231 <div class="slider"></div> 232 @{var rambars = 100 - (i.GetInteger("Ecom:Product.CategoryField.Main_System.RAM_Bars.Value.Clean") * 20);} 233 <div class="slider-cover" style="width: @rambars%"></div> 234 </div> 235 <div class="additional"> 236 237 </div> 238 </div> 239 </div> 240 </div> 241 242 @{ 243 var shorttime = i.GetInteger("Ecom:Product:Field.LeadTimeInDays.Value.Clean") - 2; 244 var leadtime = i.GetInteger("Ecom:Product:Field.LeadTimeInDays.Value.Clean"); 245 } 246 <hr> 247 <div class="shipping"> 248 @{ 249 if(leadtime == 1 && i.GetInteger("Ecom:Product.Stock") > 0) { 250 System.DateTime date = System.DateTime.Now; 251 int currdow = (int)date.DayOfWeek; 252 253 int currHour = date.Hour - 5; 254 if(currHour < 13 && (currdow != 7 || currdow != 0)) { 255 <text> 256 <a href='@i.GetValue("Ecom:Product.LinkGroup.Clean")' class=""> 257 <div class="qs-icon-img @i.GetValue("Ecom:Product.StockLevel")"><img src="/Files/Images/quickship-icon.png" /></div> 258 <div class="qs-available"> 259 <div>Available for QuickShip</div> 260 <div>Ships @date.ToString("MM-dd-yyyy")</div> 261 <div class="qs-details">Click here for details</div> 262 </div> 263 </a> 264 </text> 265 }else { 266 date = date.AddDays(1); 267 int dow = (int)date.DayOfWeek + 1; 268 269 if(dow == 7 || dow == 0) { 270 System.DateTime today = System.DateTime.Today; 271 int daysUntilMonday = ((int) DayOfWeek.Monday - (int) today.DayOfWeek + 7) % 7; 272 date = date.AddDays(daysUntilMonday-1); 273 } 274 <text> 275 <a href='@i.GetValue("Ecom:Product.LinkGroup.Clean")' class=""> 276 <div class="qs-icon-img"><img src="/Files/Images/quickship-icon.png" /></div> 277 <div class="qs-available"> 278 <div>Available for QuickShip</div> 279 <div>Ships @date.ToString("MM-dd-yyyy")</div> 280 <div class="qs-details">Click here for details</div> 281 </div> 282 </a> 283 </text> 284 } 285 }else if(shorttime > 0) { 286 <text>Ships in @shorttime - @leadtime business days.</text> 287 }else { 288 shorttime = 0; 289 leadtime = 0; 290 291 switch (systemShort) 292 { 293 case "apexx1": 294 case "apexx2": 295 shorttime = 5; 296 leadtime = 7; 297 break; 298 case "apexx4": 299 case "apexx5": 300 shorttime = 13; 301 leadtime = 15; 302 break; 303 } 304 <text>Ships in @shorttime - @leadtime business days.</text> 305 306 307 // Command line argument must the the SMTP host. 308 //SmtpClient client = new SmtpClient(); 309 // Specify the e-mail sender. 310 // Create a mailing address that includes a UTF8 character 311 // in the display name. 312 //MailAddress from = new MailAddress("test@boxx.com", "Boxx Website", System.Text.Encoding.UTF8); 313 // Set destinations for the e-mail message. 314 //MailAddress to = new MailAddress("sdinwiddie@boxxtech.com"); 315 // Specify the message content. 316 //MailMessage message = new MailMessage(from, to); 317 //message.To.Add("cjohnson@boxxtech.com"); 318 319 //message.Body = "The "+i.GetString("Ecom:Product.Name")+" does not have a lead time associated with it."; 320 // Include some non-ASCII characters in body and subject. 321 //string someArrows = new string(new char[] {'\u2190', '\u2191', '\u2192', '\u2193'}); 322 //message.Body += Environment.NewLine + someArrows; 323 //message.BodyEncoding = System.Text.Encoding.UTF8; 324 //message.Subject = "Zero lead time found " + i.GetString("Ecom:Product.Name"); 325 //message.SubjectEncoding = System.Text.Encoding.UTF8; 326 //client.Send(message); 327 // Clean up. 328 //message.Dispose(); 329 //Console.WriteLine("Goodbye."); 330 331 332 } 333 } 334 </div> 335 <hr> 336 <div class="specs-short"> 337 <div class="short-specs-header"> 338 <span class="short-specs-header-text"> 339 Basic Configuration Specs 340 </span> 341 </div> 342 <br/> 343 <div class="short-specs-content"> 344 @i.GetValue("Ecom:Product:Field.BasicConfigurationSpecs") 345 </div> 346 </div> 347 <br /> 348 <div class="pricing"> 349 350 @if (!String.IsNullOrEmpty(i.GetString("Ecom:Product:Field.GuruProductNumber"))) { 351 <text>Starting at <br><span class="price">@i.GetValue("Ecom:Product.Discount.Price.PriceFormatted")</span></text> 352 }else { 353 if (!String.IsNullOrEmpty(i.GetString("Ecom:Product.CategoryField.Main_System.Configuration_link.Value"))) { 354 <text>Starting at <br><span class="price">@i.GetValue("Ecom:Product.Discount.Price.PriceFormatted")</span></text> 355 }else { 356 357 } 358 } 359 360 </div> 361 <div class="green-button-100width"> 362 @if (!String.IsNullOrEmpty(i.GetString("Ecom:Product:Field.GuruProductNumber"))) 363 { 364 <text> 365 <script> 366 if(!nocomm) { 367 document.write('<a onclick="return gaTrack(event, this);" href="/Default.aspx?ID=<!--@Item.Area.Configure_Page_ID-->&ProductID=@i.GetString("Ecom:Product.ID")&GuruSessionId=@System.Guid.NewGuid()&ModelNumber=@i.GetString("Ecom:Product:Field.GuruProductNumber")&ConfigName=@i.GetString("Ecom:Product.Name")&referrer=<!--@Global:Pageview.Url-->" class="">CUSTOMIZE &amp; BUY</a>'); 368 } 369 if(nocomm) { 370 document.write('<a href="/Default.aspx?ID=<!--@Item.Area.Configure_Page_ID-->&ProductID=@i.GetString("Ecom:Product.ID")&GuruSessionId=@System.Guid.NewGuid()&ModelNumber=@i.GetString("Ecom:Product:Field.GuruProductNumber")&ConfigName=@i.GetString("Ecom:Product.Name")&referrer=<!--@Global:Pageview.Url-->" class="">CUSTOMIZE &amp; BUY</a>'); 371 } 372 </script> 373 </text> 374 } 375 else 376 { 377 if (!String.IsNullOrEmpty(i.GetString("Ecom:Product.CategoryField.Main_System.Configuration_link.Value"))) { 378 <a href="/@i.GetString("Ecom:Product.CategoryField.Main_System.Configuration_link.Value")" class="">Buy Now</a> 379 } 380 else 381 { 382 <a href="/Default.aspx?ID=<!--@Item.Area.Contact_Us_Page_ID-->" class="">Contact us for price</a> 383 } 384 } 385 </div> 386 <br /> 387 @if(!String.IsNullOrEmpty(i.GetString("Ecom:Product:Field.SpecSheet.Value.FullPath"))) { 388 string specsheet = i.GetString("Ecom:Product:Field.SpecSheet.Value.FullPath"); 389 string specurl = System.Web.HttpUtility.UrlEncode(specsheet); 390 391 <a href="/Admin/Public/DWSDownload.aspx?File=@specurl%3fdownload%3dfalse" target="_blank"> 392 <div class="gray-button-100width"> 393 <text>DETAILED SPEC SHEET</text> 394 </div> 395 </a> 396 397 }else { 398 <div class="gray-button-100width"> 399 <text>NO SPEC SHEET</text> 400 </div> 401 } 402 </div> 403 </div> 404 405 loopCount++; 406 } 407 } 408 @foreach (LoopItem i in GetLoop("Products")) 409 { 410 if (i.GetString("Ecom:Product.ID") != productId){ 411 @*Note: loopCount is set and incremented on the calling page*@ 412 bool hilite; 413 414 try { 415 hilite = !(System.String.IsNullOrEmpty(System.Web.HttpContext.Current.Request["highlight"].Trim())); 416 }catch (Exception ex) { 417 hilite = false; 418 } 419 int cnt = 0; 420 if(loopMax % 4 == 0) { 421 cnt = 4; 422 } else if(loopMax % 3 == 0) { 423 cnt = 3; 424 } else if(loopMax % 2 == 0){ 425 cnt = 2; 426 } else { 427 cnt = 4; 428 } 429 430 string cols = ""; 431 switch(cnt) { 432 case 4: 433 cols = "col-md-3"; 434 if((loopMax - 2) % 4 == 0 && loopCount == loopMax - 2) 435 { 436 cols = cols + " col-md-offset-3"; 437 } 438 break; 439 case 3: 440 cols = "col-md-4"; 441 break; 442 case 2: 443 cols = "col-md-4 col-md-offset-1"; 444 break; 445 case 1: 446 cols = "col-md-3"; 447 break; 448 default: 449 cols = System.Convert.ToString(loopMax); 450 break; 451 } 452 453 string gName = ""; 454 455 var primaryGroup = i.GetString("Ecom:Product.PrimaryGroupID"); 456 foreach (LoopItem j in @i.GetLoop("AssociatedGroups")) 457 { 458 459 if(primaryGroup == @j.GetString("Ecom:Group.ID")) { 460 gName = @j.GetString("Ecom:Group.Name"); 461 } 462 463 } 464 465 <script> 466 var nocomm; 467 if(typeof boxxecom === "undefined") { 468 nocomm = true; 469 }else { 470 nocomm = false; 471 } 472 var product = {}; 473 var cat = '', prodlist = ''; 474 var url = window.location.href; 475 if(url.indexOf('products') > -1) { 476 cat = url.split("/").pop(); 477 prodlist = cat; 478 }else if(url.indexOf('solutions') > -1) { 479 cat = ''; 480 prodlist = url.split("/").pop(); 481 }else { 482 cat = ''; 483 prodlist = url; 484 } 485 var pos = @loopCount; 486 product.name = '@i.GetString("Ecom:Product.Name")'; 487 product.id = '@i.GetValue("Ecom:Product.ID").ToString()'; 488 price = '@i.GetValue("Ecom:Product.Discount.Price.PriceFormatted")'; 489 price = price.replace(/[^0-9\.]+/g,""); 490 if(parseInt(price) == 0) { 491 price = 'contact'; 492 } 493 product.price = price; 494 product.category = '@gName'; 495 product.variant = ''; 496 product.list = prodlist || ''; 497 product.position = String(pos + 1); 498 if(typeof products_storage !== "undefined") 499 products_storage.push(product); 500 </script> 501 502 <div class="@cols @if(hilite && System.Web.HttpContext.Current.Request["highlight"].Trim()==i.GetValue("Ecom:Product.ID.UrlEncoded").ToString()) {<text>highlight</text>} " > 503 <div class="silo ga-product" data-product-id="@i.GetValue("Ecom:Product.ID").ToString()"> 504 @{ 505 string prodName = i.GetString("Ecom:Product.Name"); 506 string sPattern = "^Apexx\\s\\d"; 507 string systemType = ""; 508 string systemShort = ""; 509 if(Regex.IsMatch(prodName, sPattern, RegexOptions.IgnoreCase)) { 510 systemShort = prodName.Substring(0, 7).Replace(" ", string.Empty).ToLower(); 511 systemType = prodName.Substring(0, 7).Replace(" ", string.Empty).ToLower()+".png"; 512 } 513 string imagepath = ""; 514 if(!String.IsNullOrEmpty(i.GetString("Ecom:Product.ImageLarge.Default.Clean"))) { 515 imagepath = i.GetString("Ecom:Product.ImageLarge.Default.Clean"); 516 }else if(!String.IsNullOrEmpty(i.GetString("Ecom:Product.ImageMedium.Default.Clean"))) { 517 imagepath = i.GetString("Ecom:Product.ImageMedium.Default.Clean"); 518 }else if(!String.IsNullOrEmpty(i.GetString("Ecom:Product.ImageSmall.Default.Clean"))) { 519 imagepath = i.GetString("Ecom:Product.ImageSmall.Default.Clean"); 520 } 521 } 522 <div class="product-image"> 523 @if(!String.IsNullOrEmpty(i.GetString("Ecom:Product:Field.NewBest.Value.Clean"))) { 524 var newbest = ""; 525 if(@i.GetString("Ecom:Product:Field.NewBest.Value.Clean") == "Best Seller") { 526 newbest = "bestseller.png"; 527 528 <text> 529 <img src="/Files/Images/@newbest" class="new-best"> 530 </text> 531 } else if(@i.GetString("Ecom:Product:Field.NewBest.Value.Clean") == "New") { 532 newbest = "new.png"; 533 534 <text> 535 <img src="/Files/Images/@newbest" class="new-best"> 536 </text> 537 }else {} 538 } 539 <img src="@imagepath" > 540 </div> 541 <div class="product-title"> 542 @i.GetString("Ecom:Product.Name") 543 </div> 544 <hr> 545 <div class="product-description"> 546 <span class="short-desc"> 547 @i.GetValue("ShortDescription.Clean") 548 </span> 549 </div> 550 <hr> 551 <div class="product-graphic-overview"> 552 <div class="cpu-speed"> 553 @{ 554 int cpubars = 100 - (i.GetInteger("Ecom:Product.CategoryField.Main_System.CPU_Speed_Bars.Value.Clean") * 20); 555 bool cpuoc = i.GetBoolean("Ecom:Product.CategoryField.Main_System.Overclocked.Value.Clean"); 556 } 557 <div class="product-icon"> 558 <img src="/Files/Images/cpu-icon.png" style="padding-top: 3px"> 559 </div> 560 <div class="product-details"> 561 <div class="detail"> 562 <span class="upto">UP To</span> @i.GetValue("Ecom:Product.CategoryField.Main_System.CPU_Speed_Ghz.Value") GHz 563 564 </div> 565 <div class="slider-power" align="right"> 566 <div class="slider"></div> 567 <div class="slider-cover" style="width: @cpubars%"></div> 568 </div> 569 <div class="additional"> 570 <div class="overclocked" data-oc="@cpuoc" style="display:none"> 571 OVERCLOCKED 572 </div> 573 </div> 574 </div> 575 </div> 576 <div class="cpu-cores"> 577 <div class="product-icon"> 578 <img src="/Files/Images/cores-icon.png" style="padding-top: 3px" /> 579 </div> 580 <div class="product-details"> 581 <div class="detail"> 582 <span class="upto">UP To</span> @i.GetValue("Ecom:Product.CategoryField.Main_System.CPU_Cores_Count.Value.Clean") cores 583 </div> 584 <div class="slider-power" align="right"> 585 <div class="slider"></div> 586 @{var corebars = 100 - (i.GetInteger("Ecom:Product.CategoryField.Main_System.CPU_Cores_Bars.Value.Clean") * 20);} 587 <div class="slider-cover" style="width: @corebars%"></div> 588 </div> 589 <div class="additional"> 590 591 </div> 592 </div> 593 </div> 594 <div class="gpu-count"> 595 <div class="product-icon"> 596 <img src="/Files/Images/gpu-icon.png" style="padding-top: 3px" /> 597 </div> 598 <div class="product-details"> 599 <div class="detail"> 600 <span class="upto">UP To</span> @i.GetInteger("Ecom:Product.CategoryField.Main_System.GPU_Density.Value.Clean") GPU 601 </div> 602 <div class="slider-power" align="right"> 603 <div class="slider"></div> 604 @{var gpubars = 100 - (i.GetInteger("Ecom:Product.CategoryField.Main_System.GPU_Bars.Value.Clean") * 20);} 605 <div class="slider-cover " style="width: @gpubars%"></div> 606 </div> 607 <div class="additional"> 608 609 </div> 610 </div> 611 </div> 612 <div class="memory"> 613 <div class="product-icon"> 614 <img src="/Files/Images/memory-icon.png" style="padding-top: 3px" /> 615 </div> 616 <div class="product-details"> 617 <div class="detail"> 618 <span class="upto">UP To</span> @i.GetValue("Ecom:Product.CategoryField.Main_System.Max_memory_configurable.Value.Clean") 619 <div class="small-detail" style="display: normal"> 620 621 </div> 622 </div> 623 <div class="slider-power" align="right"> 624 <div class="slider"></div> 625 @{var rambars = 100 - (i.GetInteger("Ecom:Product.CategoryField.Main_System.RAM_Bars.Value.Clean") * 20);} 626 <div class="slider-cover" style="width: @rambars%"></div> 627 </div> 628 <div class="additional"> 629 630 </div> 631 </div> 632 </div> 633 </div> 634 635 @{ 636 var shorttime = i.GetInteger("Ecom:Product:Field.LeadTimeInDays.Value.Clean") - 2; 637 var leadtime = i.GetInteger("Ecom:Product:Field.LeadTimeInDays.Value.Clean"); 638 } 639 <hr> 640 <div class="shipping"> 641 @{ 642 if(leadtime == 1 && i.GetInteger("Ecom:Product.Stock") > 0) { 643 System.DateTime date = System.DateTime.Now; 644 int currdow = (int)date.DayOfWeek; 645 646 int currHour = date.Hour - 5; 647 if(currHour < 13 && (currdow != 7 || currdow != 0)) { 648 <text> 649 <a href='@i.GetValue("Ecom:Product.LinkGroup.Clean")' class=""> 650 <div class="qs-icon-img @i.GetValue("Ecom:Product.StockLevel")"><img src="/Files/Images/quickship-icon.png" /></div> 651 <div class="qs-available"> 652 <div>Available for QuickShip</div> 653 <div>Ships @date.ToString("MM-dd-yyyy")</div> 654 <div class="qs-details">Click here for details</div> 655 </div> 656 </a> 657 </text> 658 }else { 659 date = date.AddDays(1); 660 int dow = (int)date.DayOfWeek + 1; 661 662 if(dow == 7 || dow == 0) { 663 System.DateTime today = System.DateTime.Today; 664 int daysUntilMonday = ((int) DayOfWeek.Monday - (int) today.DayOfWeek + 7) % 7; 665 date = date.AddDays(daysUntilMonday-1); 666 } 667 <text> 668 <a href='@i.GetValue("Ecom:Product.LinkGroup.Clean")' class=""> 669 <div class="qs-icon-img"><img src="/Files/Images/quickship-icon.png" /></div> 670 <div class="qs-available"> 671 <div>Available for QuickShip</div> 672 <div>Ships @date.ToString("MM-dd-yyyy")</div> 673 <div class="qs-details">Click here for details</div> 674 </div> 675 </a> 676 </text> 677 } 678 }else if(shorttime > 0) { 679 <text>Ships in @shorttime - @leadtime business days.</text> 680 }else { 681 shorttime = 0; 682 leadtime = 0; 683 684 switch (systemShort) 685 { 686 case "apexx1": 687 case "apexx2": 688 shorttime = 5; 689 leadtime = 7; 690 break; 691 case "apexx4": 692 case "apexx5": 693 shorttime = 13; 694 leadtime = 15; 695 break; 696 } 697 <text>Ships in @shorttime - @leadtime business days.</text> 698 699 700 // Command line argument must the the SMTP host. 701 //SmtpClient client = new SmtpClient(); 702 // Specify the e-mail sender. 703 // Create a mailing address that includes a UTF8 character 704 // in the display name. 705 //MailAddress from = new MailAddress("test@boxx.com", "Boxx Website", System.Text.Encoding.UTF8); 706 // Set destinations for the e-mail message. 707 //MailAddress to = new MailAddress("sdinwiddie@boxxtech.com"); 708 // Specify the message content. 709 //MailMessage message = new MailMessage(from, to); 710 //message.To.Add("cjohnson@boxxtech.com"); 711 712 //message.Body = "The "+i.GetString("Ecom:Product.Name")+" does not have a lead time associated with it."; 713 // Include some non-ASCII characters in body and subject. 714 //string someArrows = new string(new char[] {'\u2190', '\u2191', '\u2192', '\u2193'}); 715 //message.Body += Environment.NewLine + someArrows; 716 //message.BodyEncoding = System.Text.Encoding.UTF8; 717 //message.Subject = "Zero lead time found " + i.GetString("Ecom:Product.Name"); 718 //message.SubjectEncoding = System.Text.Encoding.UTF8; 719 //client.Send(message); 720 // Clean up. 721 //message.Dispose(); 722 //Console.WriteLine("Goodbye."); 723 724 725 } 726 } 727 </div> 728 <hr> 729 <div class="specs-short"> 730 <div class="short-specs-header"> 731 <span class="short-specs-header-text"> 732 Basic Configuration Specs 733 </span> 734 </div> 735 <br/> 736 <div class="short-specs-content"> 737 @i.GetValue("Ecom:Product:Field.BasicConfigurationSpecs") 738 </div> 739 </div> 740 <br /> 741 <div class="pricing"> 742 743 @if (!String.IsNullOrEmpty(i.GetString("Ecom:Product:Field.GuruProductNumber"))) { 744 <text>Starting at <br><span class="price">@i.GetValue("Ecom:Product.Discount.Price.PriceFormatted")</span></text> 745 }else { 746 if (!String.IsNullOrEmpty(i.GetString("Ecom:Product.CategoryField.Main_System.Configuration_link.Value"))) { 747 <text>Starting at <br><span class="price">@i.GetValue("Ecom:Product.Discount.Price.PriceFormatted")</span></text> 748 }else { 749 750 } 751 } 752 753 </div> 754 <div class="green-button-100width"> 755 @if (!String.IsNullOrEmpty(i.GetString("Ecom:Product:Field.GuruProductNumber"))) 756 { 757 <text> 758 <script> 759 if(!nocomm) { 760 document.write('<a onclick="return gaTrack(event, this);" href="/Default.aspx?ID=<!--@Item.Area.Configure_Page_ID-->&ProductID=@i.GetString("Ecom:Product.ID")&GuruSessionId=@System.Guid.NewGuid()&ModelNumber=@i.GetString("Ecom:Product:Field.GuruProductNumber")&ConfigName=@i.GetString("Ecom:Product.Name")&referrer=<!--@Global:Pageview.Url-->" class="">CUSTOMIZE &amp; BUY</a>'); 761 } 762 if(nocomm) { 763 document.write('<a href="/Default.aspx?ID=<!--@Item.Area.Configure_Page_ID-->&ProductID=@i.GetString("Ecom:Product.ID")&GuruSessionId=@System.Guid.NewGuid()&ModelNumber=@i.GetString("Ecom:Product:Field.GuruProductNumber")&ConfigName=@i.GetString("Ecom:Product.Name")&referrer=<!--@Global:Pageview.Url-->" class="">CUSTOMIZE &amp; BUY</a>'); 764 } 765 </script> 766 </text> 767 } 768 else 769 { 770 if (!String.IsNullOrEmpty(i.GetString("Ecom:Product.CategoryField.Main_System.Configuration_link.Value"))) { 771 <a href="/@i.GetString("Ecom:Product.CategoryField.Main_System.Configuration_link.Value")" class="">Buy Now</a> 772 } 773 else 774 { 775 <a href="/Default.aspx?ID=<!--@Item.Area.Contact_Us_Page_ID-->" class="">Contact us for price</a> 776 } 777 } 778 </div> 779 <br /> 780 @if(!String.IsNullOrEmpty(i.GetString("Ecom:Product:Field.SpecSheet.Value.FullPath"))) { 781 string specsheet = i.GetString("Ecom:Product:Field.SpecSheet.Value.FullPath"); 782 string specurl = System.Web.HttpUtility.UrlEncode(specsheet); 783 784 <a href="/Admin/Public/DWSDownload.aspx?File=@specurl%3fdownload%3dfalse" target="_blank"> 785 <div class="gray-button-100width"> 786 <text>DETAILED SPEC SHEET</text> 787 </div> 788 </a> 789 790 }else { 791 <div class="gray-button-100width"> 792 <text>NO SPEC SHEET</text> 793 </div> 794 } 795 </div> 796 </div> 797 798 loopCount++; 799 } 800 } 801 </div> 802 <div class="clear"></div> 803 @if (loopCount > 3) 804 { 805 <div class="silos-show-more"> 806 <div class="silos-show-more-corner-left"></div> 807 <div class="silos-show-more-corner-right"></div> 808 <div style=""> 809 <div style=""></div> 810 <div class="silos-show-more-text"> 811 <span class="silos-show-more-showwording silos-show-more-options">Show more configurations</span> 812 <span class="silos-show-more-hidewording silos-call" style="display: none;">Call <!--@Item.Area.Phone_Number--> for more advanced configurations</span> 813 </div> 814 </div> 815 <div><span class="silos-show-more-hidewording silos-show-less-options" style="display: none;">Show fewer options</span></div> 816 </div> 817 } 818 </div> 819 820 <script> 821 $('.silos-show-more').unbind('click').click(function() { 822 $('.silo-in-additionalrow').slideToggle(); 823 $('.silos-show-more-showwording').toggle(); 824 $('.silos-show-more-hidewording').toggle(); 825 }) 826 </script> 827