Fremragende 4.7 ud af 5 på Trustpilot

Error executing template "Designs/Swift-v2/Paragraph/Swift-v2_Preferences/Offcanvas.cshtml"
System.ArgumentException: Customized cultures cannot be passed by LCID, only by name. (Parameter 'culture')
   at System.Globalization.RegionInfo..ctor(Int32 culture)
   at CompiledRazorTemplates.Dynamic.RazorEngine_29a37a2620004e71b5f9fb84aa23179d.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) in /_/src/Application/Providers/Dynamicweb.Rendering.Providers.NetCore/Razor/RazorTemplateRenderingProvider.cs:line 68
   at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template) in E:\dw10agent\_w\2\s\src\Core\Dynamicweb.Core\Rendering\TemplateRenderingService.cs:line 14
   at Dynamicweb.Rendering.Template.RenderRazorTemplate() in E:\dw10agent\_w\2\s\src\Core\Dynamicweb.Core\Rendering\Template.cs:line 847

1 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel> 2 @using Dynamicweb.Frontend 3 @using Dynamicweb.Frontend.Navigation 4 @using System.Text.RegularExpressions 5 @using Microsoft.AspNetCore.WebUtilities 6 7 @{ 8 int updatePageId = Pageview.Page.ID; 9 string loadContent = Dynamicweb.Context.Current?.Request.QueryString.Get("LoadContent") ?? string.Empty; 10 var region = new System.Globalization.RegionInfo(Pageview.Area.CultureInfo.LCID); 11 12 string? title = null; 13 if (Model.Item.TryGetString("Title", out string customTitle)) 14 { 15 title = customTitle; 16 } 17 if (Model.Item.GetBoolean("UseLanguageName")) 18 { 19 title = region.DisplayName; 20 } 21 22 string pageIcon = string.Empty; 23 if (Model.Item.TryGetString("Icon", out var icon)) 24 { 25 pageIcon = icon; 26 } 27 string flagIconFolder = "/Files/Images/Icons/Flags/"; 28 if (Model.Item.GetBoolean("UseLanguageIcon")) 29 { 30 pageIcon = $"{flagIconFolder}{region.Name}.svg"; 31 } 32 33 } 34 35 @if(loadContent != "true") 36 { 37 <div class="nav-wrapper"> 38 <span class="p-2 nav-link d-inline-flex align-items-center gap-2 text-nowrap text-decoration-underline-hover" 39 role="button" 40 data-bs-toggle="offcanvas" 41 data-bs-target="#DynamicOffcanvas" 42 id="PreferencesDropdown_@Model.ID" 43 hx-get 44 hx-vals='{"ParagraphId": "@Model.ID", "LayoutTemplate": "Swift-v2_PageClean.cshtml", "LoadContent": "true"}' 45 hx-trigger="click" 46 hx-swap="innerHTML" 47 hx-target="#DynamicOffcanvas"> 48 @if (!string.IsNullOrEmpty(pageIcon) && pageIcon.EndsWith(".svg", StringComparison.OrdinalIgnoreCase)) 49 { 50 <span class="icon-3 pe-none">@ReadFile(pageIcon)</span> 51 } 52 @if (!string.IsNullOrEmpty(title)) 53 { 54 <span>@title</span> 55 } 56 </span> 57 </div> 58 } 59 else 60 { 61 var languages = new List<Dynamicweb.Content.Page>(); 62 var ecomCountries = Dynamicweb.Ecommerce.Services.Countries.GetCountries()?.OrderBy(country => country.GetName(Pageview.Area.EcomLanguageId)) ?? null; 63 64 var currencies = Dynamicweb.Ecommerce.Services.Currencies.GetAllCurrencies(); 65 66 if (Model.Item.GetBoolean("LanguageSelector") == true) 67 { 68 if (Pageview.Page.Area.IsMaster) 69 { 70 languages.Add(Pageview.Page); 71 if (Pageview.Page.Languages != null) 72 { 73 foreach (var language in Pageview.Page.Languages) 74 { 75 if (language.Area.Active == true) 76 { 77 languages.Add(language); 78 } 79 } 80 } 81 } 82 else 83 { 84 if (Pageview.Page.MasterPage != null) 85 { 86 languages.Add(Pageview.Page.MasterPage); 87 if (Pageview.Page.MasterPage.Languages != null) 88 { 89 foreach (var language in Pageview.Page.MasterPage.Languages) 90 { 91 if (language.Area.Active == true) 92 { 93 languages.Add(language); 94 } 95 } 96 } 97 } 98 } 99 } 100 101 <div class="offcanvas-header"> 102 <h5 class="offcanvas-title" id="PreferencesLabel">@Translate("Preferences")</h5> 103 <button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="@Translate("Close")"></button> 104 </div> 105 <div class="offcanvas-body"> 106 @if (Model.Item.GetBoolean("LanguageSelector") == true && languages.Count > 1) 107 { 108 <div class="form-floating mb-3"> 109 <select id="LanguageSelect" name="ID" class="form-select d-col-12" 110 aria-label="@Translate("Select language")" 111 hx-trigger="change" 112 hx-target="#DynamicOffcanvas" 113 hx-get="/" 114 hx-vals='{"ParagraphId": "@Model.ID", "LayoutTemplate": "Swift-v2_PageClean.cshtml", "LoadContent": "true"}'> 115 @foreach (var language in languages) 116 { 117 if (language != null && language.Published && language.Area.Active && language.Area.Published) 118 { 119 string selectedLanguage = language.Area.ID == Pageview.Area.ID ? "selected" : ""; 120 updatePageId = selectedLanguage != "" ? language.ID : updatePageId; 121 122 var masterPageId = Pageview.Page?.MasterPageId != null && Pageview.Page.MasterPageId != 0 ? 123 Pageview.Page.MasterPageId : Pageview.ID; 124 var preferencePageId = Dynamicweb.Content.Services.Pages.GetPageIDByMasterID(masterPageId, 125 language.AreaId); 126 preferencePageId = preferencePageId == 0 ? Pageview.Page.MasterPageId : preferencePageId; 127 preferencePageId = preferencePageId == 0 ? Pageview.Page.ID : preferencePageId; 128 129 <option hreflang="@language.Area.CultureInfo.TwoLetterISOLanguageName" value="@preferencePageId" 130 @selectedLanguage>@language.Area.DisplayName</option> 131 } 132 } 133 </select> 134 <label for="LanguageSelect">@Translate("Language")</label> 135 </div> 136 } 137 138 @if (Model.Item.GetBoolean("CountrySelector") == true && ecomCountries?.Count<Dynamicweb.Ecommerce.International.Country>() > 1) 139 { 140 <div class="form-floating mb-3"> 141 <select name="CountryCode" id="CountryCodeSelect" class="form-select d-col-12" 142 aria-label="@Translate("Select country")" 143 hx-trigger="change" 144 hx-target="#DynamicOffcanvas" 145 hx-get="/" 146 hx-vals='{"ID": "@updatePageId", "ParagraphId": "@Model.ID", "LayoutTemplate": "Swift-v2_PageClean.cshtml", "LoadContent": "true"}'> 147 @foreach (var country in ecomCountries) 148 { 149 var selectedCountry = country.Code2 == Dynamicweb.Ecommerce.Common.Context.Country.Code2 ? "selected" : ""; 150 151 if (!string.IsNullOrEmpty(country.GetName(Pageview.Area.EcomLanguageId))) 152 { 153 <option value="@country.Code2" @selectedCountry>@country.GetName(Pageview.Area.EcomLanguageId)</option> 154 } 155 } 156 </select> 157 <label for="CountryCodeSelect">@Translate("Delivery country")</label> 158 </div> 159 } 160 161 @if (Model.Item.GetBoolean("CurrencySelector") == true && currencies.Count() > 1) 162 { 163 <div class="form-floating mb-3"> 164 <select name="CurrencyCode" id="CurrencySelect" class="form-select d-col-12" 165 aria-label="@Translate("Select currency")" 166 hx-trigger="change" 167 hx-target="#DynamicOffcanvas" 168 hx-get="/" 169 hx-vals='{"ID": "@updatePageId", "ParagraphId": "@Model.ID", "LayoutTemplate": "Swift-v2_PageClean.cshtml", "LoadContent": "true"}'> 170 @foreach (var currency in currencies) 171 { 172 string selectedCurrency = currency.Code == Dynamicweb.Ecommerce.Common.Context.Currency.Code ? 173 "selected" : ""; 174 175 if (!string.IsNullOrEmpty(currency.Code)) 176 { 177 <option value="@currency.Code" @selectedCurrency>@currency.Code</option> 178 } 179 } 180 </select> 181 <label for="CurrencySelect">@Translate("Currency")</label> 182 </div> 183 } 184 </div> 185 186 @{ 187 var uri = Dynamicweb.Context.Current?.Request?.Url; 188 var queryParams = QueryHelpers.ParseQuery(uri?.Query); 189 190 queryParams.Remove("LoadContent"); 191 queryParams.Remove("ParagraphId"); 192 queryParams.Remove("LayoutTemplate"); 193 194 var newQuery = string.Join("&", queryParams.Select(kvp => $"{kvp.Key}={kvp.Value}")); 195 var updateUrl = $"{uri?.Scheme}://{uri?.Host}{uri?.AbsolutePath}?{newQuery}"; 196 } 197 198 199 <div class="offcanvas-footer"> 200 <a href="@updateUrl" hx-boost class="btn btn-primary w-100" data-dw-button="primary">@Translate("Update preferences")</a> 201 </div> 202 } 203 204

Returns

To make a return, please follow these guidelines:

To qualify for a return:

The item(s) must have been purchased from Trekbikes.com. Returns will be accepted within 30 days of purchase. The item(s) must be in new, unused condition with original packaging. Proof of purchase is required. A refund will be applied to the original card used in the transaction.

Return to Trek retailer:

Bring your order, with proof of purchase, to your local Trek retailer. Bike returns must be returned to the local Trek retailer who assembled your bike.

Return by mail:

Return shipping is free to customers with registered accounts. Log in to your account to print a prepaid shipping label. If you do not have an account, mail your return with the original packing slip to the Trek address printed on your packing slip. We suggest return by a carrier that can track delivery, such as UPS, FedEx, or Registered USPS mail.

You are responsible for all return shipping charges if you checked out as a guest at Trekbikes.com. You will see a credit on your credit card account within 30 days. However, most of our customers will see it within 4–10 business days.

Bike/frameset returns:

Bikes & framesets can be returned within 30 days if in new and unused condition. When you pick up your order or have it delivered, your Trek retailer will review the purchase with you and make sure it meets your expectations. Questions regarding your purchase should be directed to the Trek retailer of delivery. Trek warehouses will not accept returned bikes or framesets.

Exchanges:

Trekbikes.com offers refunds rather than exchanges. If you need another item in a different size or color, or a different product altogether, please place a new order and follow the return procedure to receive a credit for your original purchase.

By clicking 'Accept All' you consent that we may collect information about you for various purposes, including: Statistics and Marketing