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.
Lad din konkurrence fumle i mørket og blus fremad med dette intense lys
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: GROUP68 at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) 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.ProductCatalog.ViewEngine.GetFieldDisplayGroupValues(ProductViewModelSettings settings, Product product, String languageID, Lazy`1 productIds) at Dynamicweb.Ecommerce.ProductCatalog.ViewEngine.<>c__DisplayClass15_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.ViewEngine.CreateProductFieldGroupsView(ProductViewModel model, IEnumerable`1 groupSystemNames, Boolean hideZeroValues) at CompiledRazorTemplates.Dynamic.RazorEngine_d0f0540d4956419d84c0f9cb11013318.GetDisplayGroups(ProductViewModel product) at CompiledRazorTemplates.Dynamic.RazorEngine_d0f0540d4956419d84c0f9cb11013318.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