An awesome multiple award-winning electric enduro bike
An awesome descent, with some high speed ripping at the top, some root drops in the middle, and some great bank turns at the bottom. Fun!
Error executing template "/Designs/Swift/Grid/Page/RowTemplates/2ColumnsFlex.cshtml" System.NullReferenceException: Object reference not set to an instance of an object. at CompiledRazorTemplates.Dynamic.RazorEngine_f1d8342ff7214cf19402e7761785518d.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.GridRowViewModel> 2 3 @{ 4 string containerClass = "container-xl"; 5 6 string width = Model.Item.GetRawValueString("Width", "").ToLower(); 7 if (width == "stretch") 8 { 9 containerClass = "container-fluid"; 10 } 11 if (width == "none") 12 { 13 containerClass = "container-fluid px-0"; 14 } 15 16 string rowClass = "gap-3"; 17 string spaceBetweenColumns = Model.Item.GetRawValueString("SpaceBetweenColumns", "").ToLower(); 18 19 if (spaceBetweenColumns == "stick") 20 { 21 rowClass = "gap-0"; 22 } 23 if (spaceBetweenColumns == "spacing-large") 24 { 25 rowClass = "gap-1 gap-md-4 gap-lg-5"; 26 } 27 28 string columnPosition = Model.Item.GetRawValueString("ColumnPosition", "align-items-center").ToLower(); 29 if (columnPosition == "top") 30 { 31 columnPosition = "align-items-start"; 32 } 33 if (columnPosition == "center") 34 { 35 columnPosition = "align-items-center"; 36 } 37 if (columnPosition == "bottom") 38 { 39 columnPosition = "align-items-end"; 40 } 41 42 string rowHeight = Model.Item.GetRawValueString("RowHeight", "0").ToLower(); 43 rowHeight = "py-" + rowHeight; 44 45 string column1width = Model.Item.GetRawValueString("Column_1Width", "").ToLower(); 46 column1width = column1width == "grow" ? "flex-grow-1" : "flex-grow-0"; 47 48 string column2width = Model.Item.GetRawValueString("Column_2Width", "").ToLower(); 49 column2width = column2width == "grow" ? "flex-grow-1" : "flex-grow-0"; 50 51 string hideOnScroll = Model.Item.GetRawValueString("HideOnScroll", "").ToLower(); 52 hideOnScroll = hideOnScroll == "hide" ? "js-hide-on-scroll" : ""; 53 54 string theme = !string.IsNullOrWhiteSpace(Model.Item.GetRawValueString("Theme")) ? " theme " + Model.Item.GetRawValueString("Theme").Replace(" ", "").Trim().ToLower() : ""; 55 string alternativeTheme = !string.IsNullOrWhiteSpace(Model.Item.GetRawValueString("AlternativeTheme")) ? " theme " + Model.Item.GetRawValueString("AlternativeTheme").Replace(" ", "").Trim().ToLower() : ""; 56 string mainTheme = theme; 57 58 string headerCssClass = "sticky-top"; 59 if (Pageview.Page.PropertyItem != null) { 60 headerCssClass = Pageview.Page.PropertyItem["MoveThisPageBehindTheHeader"] != null ? Pageview.Page.PropertyItem["MoveThisPageBehindTheHeader"].ToString() : "sticky-top"; 61 } 62 headerCssClass = headerCssClass == "" ? "sticky-top" : headerCssClass; 63 headerCssClass = Pageview.IsVisualEditorMode ? "" : headerCssClass; 64 65 string themeSwitchers = ""; 66 string themeAnimated = ""; 67 if (headerCssClass == "fixed-top") 68 { 69 theme = alternativeTheme; 70 themeSwitchers = "data-main-theme=\"" + mainTheme + "\" data-alternative-theme=\"" + alternativeTheme + "\""; 71 themeAnimated = "theme-animated "; 72 } 73 74 var decorations = Model.Item?.GetList("CssDecorations")?.GetRawValue().OfType<string>() ?? Enumerable.Empty<string>(); 75 var css = string.Empty; 76 var cssClasses = new List<string> { }; 77 78 foreach (var itemId in decorations) 79 { 80 var item = Dynamicweb.Content.Services.Items.GetItem("Swift_Css", itemId); 81 item.TryGetValue("Class", out object classes); 82 if (classes is null) 83 { 84 continue; 85 } 86 87 var cssString = (string)classes; 88 if (cssString.StartsWith("[")) 89 { 90 var cssArray = Dynamicweb.Core.Converter.Deserialize<string[]>(cssString); 91 cssClasses.AddRange(cssArray); 92 } 93 else 94 { 95 cssClasses.Add(cssString.Replace(",", " ")); 96 } 97 } 98 css = string.Join(" ", cssClasses).Trim(); 99 100 var columnContent1 = Model.Column(1).Output(); 101 var columnContent2 = Model.Column(2).Output(); 102 103 if (Pageview.IsVisualEditorMode || !string.IsNullOrWhiteSpace(columnContent1) || !string.IsNullOrWhiteSpace(columnContent2)) 104 { 105 <div class="@rowHeight @themeAnimated @theme @hideOnScroll @(css) item_@Model.Item.SystemName.ToLower()" @themeSwitchers data-swift-gridrow> 106 <div class="@containerClass"> 107 <div class="d-flex flex-row @rowClass @columnPosition"> 108 <div class="col @column1width"> 109 @columnContent1 110 </div> 111 <div class="col @column2width"> 112 @columnContent2 113 </div> 114 </div> 115 </div> 116 </div> 117 } 118 } 119
See your customer specific price
Create orders through express buy
Create & save favorite lists
Possible to see your orders & invoices
When you are a customer get all the benefits
Get professional advice
Webshop with your own prices
Innovate and inspire in the cycling world. We are dedicated to crafting high-quality, functional bicycles that cater to riders globally.
Our shop provides a variety of products and bicyle parts, to realize a healty and fit body