GT Peace Single Speed
So fast. So agile. So stable. So comfortable. So simple. Just hop on the light and durable chromoly frame, settle your tush into the comfy saddle, place your feet on the pedals and let the single speed drivetrain do all the work for you. Get going too fast? No problem. One pull the brake levers and the mechanical discs will slow you right down. And the tires? They’re ready to take you through all sorts of terrain. Trust us. You’re in for the ride of your life!
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_99ef8e0ce675467cb789c78e6c67d453.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> @functions { private string RenderCustomCSS(IEnumerable<string> decorations) { var cssClasses = new List<string>(); foreach (var itemId in decorations) { var item = Dynamicweb.Content.Services.Items.GetItem("Swift_Css", itemId); item.TryGetValue("Class", out object classes); if (classes is null) { continue; } var cssString = (string)classes; if (cssString.StartsWith("[")) { var cssArray = Dynamicweb.Core.Converter.Deserialize<string[]>(cssString); cssClasses.AddRange(cssArray); } else { cssClasses.Add(cssString.Replace(",", " ")); } } return string.Join(" ", cssClasses).Trim(); } } @{ string title = Model.Item.GetString("Title"); var accordionItems = Model.Item?.GetItems("Accordion_Items") ?? Enumerable.Empty<Dynamicweb.Frontend.ItemViewModel>().ToList(); string theme = !string.IsNullOrWhiteSpace(Model.Item.GetRawValueString("Theme")) ? " theme " + Model.Item.GetRawValueString("Theme").Replace(" ", "").Trim().ToLower() : ""; var decorations = Model.Item?.GetList("CssDecorations")?.GetRawValue().OfType<string>() ?? Enumerable.Empty<string>(); string css = RenderCustomCSS(decorations); string contentPadding = Model.Item.GetRawValueString("ContentPadding", "none"); contentPadding = contentPadding == "none" ? "p-0" : contentPadding; contentPadding = contentPadding == "small" ? "p-3 p-md-3" : contentPadding; contentPadding = contentPadding == "large" ? "p-5 p-md-5" : contentPadding; } <div class="accordion @(theme) @(css) @(contentPadding) h-100 position-relative item_@Model.Item.SystemName.ToLower()" id="accordion-@Pageview.CurrentParagraph.ID"> @if (!string.IsNullOrEmpty(Model.Item.GetString("Title")) && !Model.Item.GetBoolean("HideTitle")) { string titleFontSize = Model.Item.GetRawValueString("TitleFontSize", "h2"); string headingLevel = Model.Item.GetString("HeadingLevel", "h2"); string headingLevelStart = $"<{headingLevel} class=\"{titleFontSize} mb-4\">"; string headingLevelStop = $"</{headingLevel}>"; @headingLevelStart @Model.Item.GetString("Title") @headingLevelStop } @foreach (var item in accordionItems) { <div class="accordion-item"> <h2 class="accordion-header" id="heading-@Pageview.CurrentParagraph.ID-@item.Id"> <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"> @item.GetString("Title") </button> </h2> <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"> <div class="accordion-body mb-0-last-child opacity-75"> @item.GetRawValueString("Content") </div> </div> </div> } <div id="@Model.ID" class="user-select-none position-absolute top-0" style="scroll-margin-top:var(--header-height,150px)"></div> </div>
All specs
- Brand name
- GT bicycles
- Additional equipment
- Brake type
- Mechanical disc
- Brakes
- Shimano M445 hydrualiske skivebremser
- Color
- Fork
- Chrom/aluminium
- Frame size
- 0 in
- Gear
- 21"
- Gear model
- Shimano SLX M7100
- Gear type
- External Derailleur
- Gender
- Material usage
- Aluminum
- Netto weight
- 0
- Recommended use
- Suspension
- Hardtail
- Tires
- Bontrager H2 Hard-Case Lite, 700x28c
- Wheel
- Formula disc 24-hullet
- Wheel size
- 28"
- Volume
- 0
- Weight
- 0
- Width
- 0
- Height
- 0