BBB Impress Reader - Cykelbrille med læsestyrke - Sort

BSG-59-20-1

BBB has updated their popular Impress Reader cycling glasses. The glasses have now become even more durable, and their special lens design helps to protect against sunlight, dust and wind. As with its predecessor, you get both a smoke and a clear lens for the cycling glasses, which you can easily and quickly switch between as needed.

348,75 kr. InStock
500 På lager • 2-3 dages levering
Error executing template "Designs/Swift/Paragraph/Swift_Accordion.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_e9846f716ed5469fb728ae88e7ae0ada.ExecuteAsync()
   at RazorEngine.Templating.TemplateBase.Run(ExecuteContext context, TextWriter reader)
   at RazorEngine.Templating.RazorEngineCore.RunTemplate(ICompiledTemplate template, TextWriter writer, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.DynamicWrapperService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.Run(IRazorEngineService service, String name, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass23_0.<Run>b__0(TextWriter writer)
   at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
   at RazorEngine.Templating.RazorEngineServiceExtensions.Run(IRazorEngineService service, String name, Type modelType, Object model, DynamicViewBag viewBag)
   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 3 @functions 4 { 5 private string RenderCustomCSS(IEnumerable<string> decorations) 6 { 7 var cssClasses = new List<string>(); 8 9 foreach (var itemId in decorations) 10 { 11 var item = Dynamicweb.Content.Services.Items.GetItem("Swift_Css", itemId); 12 item.TryGetValue("Class", out object classes); 13 14 if (classes is null) 15 { 16 continue; 17 } 18 19 var cssString = (string)classes; 20 21 if (cssString.StartsWith("[")) 22 { 23 var cssArray = Dynamicweb.Core.Converter.Deserialize<string[]>(cssString); 24 cssClasses.AddRange(cssArray); 25 } 26 else 27 { 28 cssClasses.Add(cssString.Replace(",", " ")); 29 } 30 } 31 32 return string.Join(" ", cssClasses).Trim(); 33 } 34 } 35 36 @{ 37 string title = Model.Item.GetString("Title"); 38 var accordionItems = Model.Item?.GetItems("Accordion_Items") ?? Enumerable.Empty<Dynamicweb.Frontend.ItemViewModel>().ToList(); 39 string theme = !string.IsNullOrWhiteSpace(Model.Item.GetRawValueString("Theme")) ? " theme " + Model.Item.GetRawValueString("Theme").Replace(" ", "").Trim().ToLower() : ""; 40 var decorations = Model.Item?.GetList("CssDecorations")?.GetRawValue().OfType<string>() ?? Enumerable.Empty<string>(); 41 string css = RenderCustomCSS(decorations); 42 string contentPadding = Model.Item.GetRawValueString("ContentPadding", "none"); 43 contentPadding = contentPadding == "none" ? "p-0" : contentPadding; 44 contentPadding = contentPadding == "small" ? "p-3 p-md-3" : contentPadding; 45 contentPadding = contentPadding == "large" ? "p-5 p-md-5" : contentPadding; 46 } 47 48 <div class="accordion @(theme) @(css) @(contentPadding) h-100 position-relative item_@Model.Item.SystemName.ToLower()" id="accordion-@Pageview.CurrentParagraph.ID"> 49 @if (!string.IsNullOrEmpty(Model.Item.GetString("Title")) && !Model.Item.GetBoolean("HideTitle")) 50 { 51 string titleFontSize = Model.Item.GetRawValueString("TitleFontSize", "h2"); 52 string headingLevel = Model.Item.GetString("HeadingLevel", "h2"); 53 string headingLevelStart = $"<{headingLevel} class=\"{titleFontSize} mb-4\">"; 54 string headingLevelStop = $"</{headingLevel}>"; 55 56 @headingLevelStart 57 @Model.Item.GetString("Title") 58 @headingLevelStop 59 } 60 @foreach (var item in accordionItems) 61 { 62 <div class="accordion-item"> 63 <h2 class="accordion-header" id="heading-@Pageview.CurrentParagraph.ID-@item.Id"> 64 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapse-@Pageview.CurrentParagraph.ID-@item.Id" aria-expanded="false" aria-controls="collapse-@Pageview.CurrentParagraph.ID-@item.Id"> 65 @item.GetString("Title") 66 </button> 67 </h2> 68 <div id="collapse-@Pageview.CurrentParagraph.ID-@item.Id" class="accordion-collapse collapse" aria-labelledby="heading-@Pageview.CurrentParagraph.ID-@item.Id" data-bs-parent="#accordion-@Pageview.CurrentParagraph.ID"> 69 <div class="accordion-body mb-0-last-child opacity-75"> 70 @item.GetRawValueString("Content") 71 </div> 72 </div> 73 </div> 74 } 75 <div id="@Model.ID" class="user-select-none position-absolute top-0" style="scroll-margin-top:var(--header-height,150px)"></div> 76 </div> 77
By clicking 'Accept All' you consent that we may collect information about you for various purposes, including: Statistics and Marketing