New 15km bike park in the heart of Pines forrest
This is a legitimate expert-level trail, but much of the difficulty can be mitigated by slowing down and picking your line carefully.
Hvis du vil have dåb med luft, så er din tur her. Ikke alene klarer denne cykel store hop med lethed, dens hårde, kromoly-ramme føles næsten vægtløs, når du er fra jorden! Tilføj 100 mm frontaffjedring for at afbøde faldene og 3-delte håndsving til den søde barspin, og du har fået dig en tur, der kan klare alt på jorden eller i luften.
Levering inden 7 hverdage
3 års garanti
Error executing template "Designs/Swift/Paragraph/Swift_ProductFieldDisplayGroups.cshtml" System.ArgumentException: An item with the same key has already been added. Key: GROUP65 at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) at Dynamicweb.Ecommerce.Products.GroupRelation.GetGroupRelationsByChildId(String childId) at Dynamicweb.Ecommerce.ProductCategoryFieldService.GetCategoriesFromGroups(List`1 categories, HashSet`1& idsHash, IEnumerable`1 groups, Int32 currentLevel, Int32 minLevel, Nullable`1 maxLevel) at Dynamicweb.Ecommerce.ProductCategoryFieldService.GetCategoriesFromGroups(List`1 categories, HashSet`1& idsHash, IEnumerable`1 groups, Int32 currentLevel, Int32 minLevel, Nullable`1 maxLevel) at Dynamicweb.Ecommerce.ProductCategoryFieldService.GetInheritedCategories(IEnumerable`1 groups, Boolean includeProductProperties) at Dynamicweb.Ecommerce.Products.Categories.ProductCategoryService.GetCategories(Product product, Boolean includeProductProperties) at Dynamicweb.Ecommerce.ProductCatalog.ViewEngine.GetFieldDisplayGroupValues(ProductViewModelSettings settings, Product product, String languageID, Lazy`1 productIds) at Dynamicweb.Ecommerce.ProductCatalog.ViewEngine.<>c__DisplayClass11_1.<BulkCreateView>b__61() at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode) at System.Lazy`1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor) at System.Lazy`1.CreateValue() at Dynamicweb.Ecommerce.ProductCatalog.ProductViewModel.get_FieldDisplayGroups() at Dynamicweb.Ecommerce.ProductCatalog.ViewEngine.CreateProductFieldGroupsView(ProductViewModel model, IEnumerable`1 groupSystemNames, Boolean hideZeroValues) at Dynamicweb.Ecommerce.ProductCatalog.ViewModelFactory.CreateView(ProductViewModel model, IEnumerable`1 groupSystemNames, Boolean hideZeroValues) at Dynamicweb.Ecommerce.ProductCatalog.ProductViewModelExtensions.GetProductDisplayGroupFieldsByGroupSystemNames(ProductViewModel productModel, IEnumerable`1 groupSystemNames, Boolean hideZeroValues) at CompiledRazorTemplates.Dynamic.RazorEngine_237507a03f8f4f4db9c5b796ccfe56b2.GetDisplayGroups(ProductViewModel product) at CompiledRazorTemplates.Dynamic.RazorEngine_237507a03f8f4f4db9c5b796ccfe56b2.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 @using Dynamicweb.Ecommerce.ProductCatalog 3 4 @functions { 5 6 ProductViewModel GetProduct() 7 { 8 ProductViewModel product = null; 9 10 if (Dynamicweb.Context.Current.Items.Contains("ProductDetails")) 11 { 12 product = (ProductViewModel)Dynamicweb.Context.Current.Items["ProductDetails"]; 13 } 14 15 return product; 16 } 17 18 List<FieldGroupViewModel> GetDisplayGroups(ProductViewModel product) 19 { 20 21 bool hideFieldsWithZeroValue = Model.Item.GetBoolean("HideFieldsWithZeroValue"); 22 var selectedDisplayGroupSystemName = Model.Item.GetList("DisplayGroups")?.GetRawValue().OfType<string>(); 23 var displayGroups = product.GetProductDisplayGroupFieldsByGroupSystemNames(selectedDisplayGroupSystemName, hideFieldsWithZeroValue); 24 25 return displayGroups.ToList(); 26 } 27 28 public static string FirstCharToUpper(string input) 29 { 30 return input[0].ToString().ToUpper() + input.Substring(1); 31 } 32 } 33 34 @{ 35 ProductViewModel product = GetProduct(); 36 37 if (product is object) 38 { 39 40 string theme = !string.IsNullOrWhiteSpace(Model.Item.GetRawValueString("Theme")) ? " theme " + Model.Item.GetRawValueString("Theme").Replace(" ", "").Trim().ToLower() : ""; 41 string contentPadding = Model.Item.GetRawValueString("ContentPadding", ""); 42 contentPadding = contentPadding == "none" ? string.Empty : contentPadding; 43 contentPadding = contentPadding == "small" ? " p-2 p-md-3" : contentPadding; 44 contentPadding = contentPadding == "large" ? " p-4 p-md-5" : contentPadding; 45 46 string size = "compact"; 47 string gapCss = size == "full" ? " gap-4" : " gap-2"; 48 49 var displayGroups = GetDisplayGroups(product); 50 51 var templateParams = new Dictionary<string, object> 52 { 53 { "Groups", displayGroups }, 54 { "Size", size }, 55 { "HideGroupHeaders", Model.Item.GetBoolean("HideGroupHeaders") }, 56 { "HideTitle", Model.Item.GetBoolean("HideTitle") } 57 }; 58 59 string templateLayout = Model.Item.GetRawValueString("Layout", "list"); 60 string templateLayoutPath = $"Components/Specifications/{FirstCharToUpper(templateLayout)}.cshtml"; 61 62 <div class="h-100@(theme)@(contentPadding) item_@Model.Item.SystemName.ToLower()"> 63 <div class="grid@(gapCss)"> 64 @RenderPartial(templateLayoutPath, Model, templateParams) 65 </div> 66 </div> 67 68 } 69 else 70 { 71 <div class="alert alert-warning m-0">@Translate("Product Specification will be shown here if any")</div> 72 } 73 } 74