GEYSER long tights
No. G31020
kr. 0,00 (kr. 0,00 ekskl. moms)
Unisex tights i elastisk svedtransporterende mikrofibermateriale. Smart flatlock-stikning i siderne med refleksdetalje for optimal synlighed. Lille lynlåslomme til nøgle eller lign...Vis mere
Unisex tights i elastisk svedtransporterende mikrofibermateriale. Smart flatlock-stikning i siderne med refleksdetalje for optimal synlighed. Lille lynlåslomme til nøgle eller lignende. Lynlås åbning i benene. Tætsiddende pasform i meget strækbart materiale. Let børstet inderside gør disse tights bløde og behagelige at have på.
Error executing template "Designs/identity_v2/ecom/product/partials/identity-part-specifications-v2.cshtml" System.NullReferenceException: Object reference not set to an instance of an object. at Co3.ID.Dw.Services.ProductService.GetVariantSizeOption(IdentityProduct product, String variantId) in C:\Data\Development\git\id-master\Co3.ID.Dynamicweb\Services\ProductService.cs:line 1321 at CompiledRazorTemplates.Dynamic.RazorEngine_554380f38f184c38882a50004750e15a.<Execute>b__1_1(KeyValuePair`2 vo) in D:\dynamicweb.net\Solutions\id.espresso4.dk-e5\Application\Files\Templates\Designs\identity_v2\ecom\product\partials\identity-part-specifications-v2.cshtml:line 172 at System.Linq.EnumerableSorter`2.ComputeKeys(TElement[] elements, Int32 count) at System.Linq.EnumerableSorter`1.Sort(TElement[] elements, Int32 count) at System.Linq.OrderedEnumerable`1.<GetEnumerator>d__1.MoveNext() at Co3.Espresso.Base.Extensions.IEnumerableExtension.<WithIndex>d__0`1.MoveNext() at CompiledRazorTemplates.Dynamic.RazorEngine_554380f38f184c38882a50004750e15a.Execute() in D:\dynamicweb.net\Solutions\id.espresso4.dk-e5\Application\Files\Templates\Designs\identity_v2\ecom\product\partials\identity-part-specifications-v2.cshtml:line 170 at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader) at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer) at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter) at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template) at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template) at Dynamicweb.Rendering.Template.RenderRazorTemplate()
1 @inherits Dynamicweb.Rendering.ViewModelTemplate<IdentityProduct> 2 @using Co3.Espresso.Base.Extensions 3 @using Co3.Espresso.Base.Models 4 @using Co3.Espresso.Website.Models 5 @using Co3.Espresso.Website.Models.FrontEnd 6 @using Co3.Espresso.Website.Models.FrontEnd.Ecommerce 7 @using Co3.Espresso.Website.Models.FrontEnd.Settings 8 @using Co3.Espresso.Website.Services 9 @using Co3.ID.Dw.Helpers 10 @using Co3.ID.Dw.Models.Frontend.Ecommerce 11 @using Dynamicweb.Ecommerce.Products 12 @using Dynamicweb.Ecommerce.Products.Categories 13 @using Dynamicweb.Frontend 14 @using IdService = Co3.ID.Dw.Services; 15 16 @{ 17 var shopContext = SiteContext.CurrentSiteContext(); 18 19 string[] genders = Model.Gender.Split(','); 20 21 Dictionary<string, string> CareSymbolsTranslated = new Dictionary<string, string>(); 22 Dictionary<string, string> CareSymbolsWashingTranslated = new Dictionary<string, string>(); 23 Category category = Dynamicweb.Ecommerce.Services.ProductCategories.GetCategoryById("CareSymbols", PageView.Current().Area.EcomLanguageId); 24 Product _dynamicwebProduct = Product.GetProductById(Model.Id, Model.VariantId, false); 25 26 string bleaching = _dynamicwebProduct.GetCategoryValue<string>("CareSymbols", "Bleaching"); 27 string drying = _dynamicwebProduct.GetCategoryValue<string>("CareSymbols", "Drying"); 28 string hangDrying = _dynamicwebProduct.GetCategoryValue<string>("CareSymbols", "HangDrying"); 29 string ironing = _dynamicwebProduct.GetCategoryValue<string>("CareSymbols", "Ironing"); 30 string professionalCare = _dynamicwebProduct.GetCategoryValue<string>("CareSymbols", "ProfessionalCare"); 31 string washing = _dynamicwebProduct.GetCategoryValue<string>("CareSymbols", "Washing"); 32 33 if (category != null) 34 { 35 foreach (Field field in category.Fields) 36 { 37 38 if (field.Id == "Washing") 39 { 40 41 foreach (FieldOption washingOption in field.FieldOptions) 42 { 43 if (washingOption.Value == washing) 44 { 45 CareSymbolsWashingTranslated[washingOption.Value] = washingOption.Name; 46 } 47 48 } 49 } 50 else 51 { 52 foreach (FieldOption option in field.FieldOptions) 53 { 54 55 if (CareSymbolsTranslated.ContainsKey(field.Id) == false) 56 { 57 if (field.Id == "Bleaching" && string.Equals(option.Value, bleaching, 58 StringComparison.OrdinalIgnoreCase) ) 59 { 60 CareSymbolsTranslated[field.Id] = option.Name; 61 } 62 if (field.Id == "Drying" && string.Equals(option.Value, drying, 63 StringComparison.OrdinalIgnoreCase) ) 64 { 65 CareSymbolsTranslated[field.Id] = option.Name; 66 } 67 if (field.Id == "HangDrying" && string.Equals(option.Value, hangDrying, 68 StringComparison.OrdinalIgnoreCase) ) 69 { 70 CareSymbolsTranslated[field.Id] = option.Name; 71 } 72 if (field.Id == "Ironing" && string.Equals(option.Value, ironing, 73 StringComparison.OrdinalIgnoreCase) ) 74 { 75 CareSymbolsTranslated[field.Id] = option.Name; 76 } 77 if (field.Id == "ProfessionalCare" && string.Equals(option.Value, professionalCare, 78 StringComparison.OrdinalIgnoreCase) ) 79 { 80 81 CareSymbolsTranslated[field.Id] = option.Name; 82 } 83 84 } 85 86 87 } 88 } 89 90 91 } 92 } 93 } 94 95 96 <div class="container-fluid"> 97 @if (shopContext == ShopType.B2C && Model.HighlightedFeatures.Any()) 98 { 99 <div class="row pb-4"> 100 <div class="col-12"> 101 <ul class="font-weight-normal mb-0 mt-2 small pl-2" style="margin-left: -5px;"> 102 @foreach (string highligtedFeature in Model.HighlightedFeatures) 103 { 104 <li class="pl-0">@highligtedFeature</li> 105 } 106 </ul> 107 </div> 108 </div> 109 } 110 <div class="accordion identity-spec-accordion border-top w-100"> 111 @if (Model.ProductIcons.ContainsKey("Certificate") && Model.ProductIcons["Certificate"] != null && Model.ProductIcons["Certificate"].Any()) 112 { 113 <div class="border-bottom"> 114 <a class="h4 d-block py-2 mb-0 spec-toggle collapsed" data-toggle="collapse" data-target="#collapseCertificates"> 115 @Translate("Certificates", "Certificates") 116 </a> 117 <div id="collapseCertificates" class="collapse identity-spec-collapse identity-spec-collapse-Certificates"> 118 <div class="mb-2 small"> 119 @foreach (KeyValuePair<string, IdentityProductIcon> certificate in Model.ProductIcons["Certificate"]) 120 { 121 <div class="row mb-1"> 122 <div class="col-4"> 123 <div class="identity-spec-icon-container spec-certificate"> 124 <img class="identity-spec-icon" src="@certificate.Value.Icon"/> 125 </div> 126 </div> 127 <div class="col-8 align-self-center"> 128 <strong class="d-block">@certificate.Value.Header</strong> 129 @certificate.Value.Text 130 </div> 131 </div> 132 } 133 134 135 </div> 136 </div> 137 </div> 138 } 139 140 <div class="border-bottom"> 141 <a class="h4 d-block py-2 mb-0 spec-toggle collapsed" data-toggle="collapse" data-target="#collapseFunctionsMaterials"> 142 @Translate("Composition and Materials", "Composition & Materials") 143 </a> 144 <div id="collapseFunctionsMaterials" class="collapse identity-spec-collapse identity-spec-collapse-FunctionsMaterials"> 145 <div class="mb-2 small"> 146 @if (!string.IsNullOrEmpty(Model.Composition)) 147 { 148 <div class="row mb-1"> 149 <div class="col-4"> 150 <strong> 151 @Translate("Composition - header", "Composition") 152 </strong> 153 </div> 154 <div class="col-8"> 155 @Model.Composition 156 </div> 157 </div> 158 } 159 160 <div class="row mb-1"> 161 <div class="col-4"> 162 <strong> 163 @Translate("Size", "Size") 164 </strong> 165 </div> 166 <div class="col-8"> 167 @{ 168 IEnumerable<KeyValuePair<string, EspressoProduct>> variantOptionsByColor = Model.VariantCombinations.Where(vc => vc.Key.Split('.')[0] == Model.VariantId.Split('.')[0]); 169 } 170 @foreach (ElementWithIndex<KeyValuePair<string, EspressoProduct>> option in variantOptionsByColor.OrderBy(vo => 171 { 172 KeyValuePair<string, EspressoVariantOption> variantSizeObj = IdService.ProductService.Instance.GetVariantSizeOption(Model, vo.Key); 173 return variantSizeObj.Value?.SortOrder; 174 }).WithIndex()) 175 { 176 KeyValuePair<string, EspressoVariantOption> variantSizeObj = Co3.ID.Dw.Services.ProductService.Instance.GetVariantSizeOption(Model, option.Element.Key); 177 if (variantSizeObj.Value != null) 178 { 179 IdentityProduct idProduct = (IdentityProduct)option.Element.Value; 180 <span class="js-identity-spec-size" data-value="@option.Element"> 181 @if (option.Index > 0) 182 { 183 <span>, </span> 184 } 185 @idProduct.SizeVariantText 186 </span> 187 } 188 189 } 190 </div> 191 </div> 192 @foreach (AEspressoDisplayField field in Model.FieldDisplayGroups.ByName["Compositions"].Fields) 193 { 194 if (string.IsNullOrEmpty(field.RenderedHtmlValue.Trim()) == false) 195 { 196 <div class="row mb-1"> 197 <div class="col-4"> 198 <strong> 199 @field.Label 200 </strong> 201 </div> 202 <div class="col-8"> 203 @field.RenderedHtmlValue 204 </div> 205 </div> 206 } 207 } 208 @if (Model.ProductIcons.ContainsKey("Breathable") && Model.ProductIcons["Breathable"] != null && Model.ProductIcons["Breathable"].Any()) 209 { 210 foreach (KeyValuePair<string, IdentityProductIcon> field in Model.ProductIcons["Breathable"]) 211 { 212 if (string.IsNullOrEmpty(field.Value.Text) == false) 213 { 214 <div class="row mb-1"> 215 <div class="col-4"> 216 <div class="identity-spec-icon-container spec-certificate"> 217 <img class="identity-spec-icon" src="@field.Value.Icon"/> 218 </div> 219 </div> 220 <div class="col-8 align-self-center"> 221 <strong class="d-block">@field.Value.Header</strong> 222 @field.Value.Text 223 </div> 224 </div> 225 } 226 227 } 228 } 229 @if (Model.ProductIcons.ContainsKey("Waterproof") && Model.ProductIcons["Waterproof"] != null && Model.ProductIcons["Waterproof"].Any()) 230 { 231 foreach (KeyValuePair<string, IdentityProductIcon> field in Model.ProductIcons["Waterproof"]) 232 { 233 if (string.IsNullOrEmpty(field.Value.Text) == false) 234 { 235 <div class="row mb-1"> 236 <div class="col-4"> 237 <div class="identity-spec-icon-container spec-certificate"> 238 <img class="identity-spec-icon" src="@field.Value.Icon"/> 239 </div> 240 </div> 241 <div class="col-8 align-self-center"> 242 <strong class="d-block">@field.Value.Header</strong> 243 @field.Value.Text 244 </div> 245 </div> 246 } 247 } 248 } 249 @if (Model.ProductIcons.ContainsKey("Other") && Model.ProductIcons["Other"] != null && Model.ProductIcons["Other"].Any()) 250 { 251 foreach (KeyValuePair<string, IdentityProductIcon> field in Model.ProductIcons["Other"]) 252 { 253 if (string.IsNullOrEmpty(field.Value.Text) == false) 254 { 255 <div class="row mb-1"> 256 <div class="col-4"> 257 <div class="identity-spec-icon-container spec-certificate"> 258 <img class="identity-spec-icon" src="@field.Value.Icon"/> 259 </div> 260 </div> 261 <div class="col-8 align-self-center"> 262 <strong class="d-block">@field.Value.Header</strong> 263 @field.Value.Text 264 </div> 265 </div> 266 } 267 } 268 } 269 @if (Model.ProductIcons.ContainsKey("Collar") && Model.ProductIcons["Collar"] != null && Model.ProductIcons["Collar"].Any()) 270 { 271 foreach (KeyValuePair<string, IdentityProductIcon> field in Model.ProductIcons["Collar"]) 272 { 273 if (string.IsNullOrEmpty(field.Value.Text) == false) 274 { 275 <div class="row mb-1"> 276 <div class="col-4"> 277 <div class="identity-spec-icon-container spec-certificate"> 278 <img class="identity-spec-icon" src="@field.Value.Icon"/> 279 </div> 280 </div> 281 <div class="col-8 align-self-center"> 282 <strong class="d-block">@field.Value.Header</strong> 283 @field.Value.Text 284 </div> 285 </div> 286 } 287 } 288 } 289 290 291 @if (genders.Any(g => g == "CHILD")) 292 { 293 <div class="row mb-1"> 294 <div class="col-4"> 295 <div class="identity-spec-icon-container spec-certificate"> 296 <img class="identity-spec-icon" src="/Files/Images/products/FeatureIcon/CHILD.svg"/> 297 </div> 298 </div> 299 <div class="col-8 align-self-center"> 300 <strong class="d-block">@Translate("Identity - Feature Icon - Header - Gender - Child", "Kids")</strong> 301 @Translate("Identity - Feature Icon - Text - Gender - Child", "Produktet er tilpasset børns aktive hverdag, og er designet uden frithængende snore.") 302 </div> 303 </div> 304 } 305 </div> 306 </div> 307 </div> 308 309 @if (Model.FieldDisplayGroups.ByName["Care_Symbols"].Fields.Any()) 310 { 311 <div class="border-bottom"> 312 <a class="h4 d-block py-2 mb-0 spec-toggle collapsed" data-toggle="collapse" data-target="#collapseCare_Symbols"> 313 @Translate("Washing", "Washing") 314 </a> 315 <div id="collapseCare_Symbols" class="collapse identity-spec-collapse identity-spec-collapse-Care_Symbols mb-1"> 316 <div class="mb-2 small"> 317 <div class="row"> 318 @foreach (AEspressoDisplayField field in Model.FieldDisplayGroups.ByName["Care_Symbols"].Fields) 319 { 320 string icon = string.Format("files/images/products/WashIcon/{0}.svg", field.RenderedHtmlValue.Replace(",", string.Empty)); 321 <div class="col-6 col-md-4"> 322 <div class="row mb-1"> 323 <div class="col-3 col-md-2"> 324 <div class="identity-spec-icon-container"> 325 <img class="identity-spec-icon" src="@icon"/> 326 </div> 327 </div> 328 <div class="col-9 col-md-10 align-self-center"> 329 @if (field.Id == "ProductCategory|CareSymbols|Bleaching") 330 { 331 if(CareSymbolsTranslated.ContainsKey("Bleaching")){ 332 @CareSymbolsTranslated["Bleaching"] 333 } 334 } 335 @if (field.Id == "ProductCategory|CareSymbols|Drying") 336 { 337 if (CareSymbolsTranslated.ContainsKey("Drying")) 338 { 339 @CareSymbolsTranslated["Drying"] 340 } 341 } 342 @if (field.Id == "ProductCategory|CareSymbols|Ironing") 343 { 344 if (CareSymbolsTranslated.ContainsKey("Ironing")) 345 { 346 @CareSymbolsTranslated["Ironing"] 347 } 348 } 349 @if (field.Id == "ProductCategory|CareSymbols|ProfessionalCare") 350 { 351 if (CareSymbolsTranslated.ContainsKey("ProfessionalCare")) 352 { 353 @CareSymbolsTranslated["ProfessionalCare"] 354 } 355 } 356 @if (field.Id == "ProductCategory|CareSymbols|Washing") 357 { 358 if (CareSymbolsWashingTranslated.ContainsKey(field.RenderedHtmlValue.Trim())) 359 { 360 @CareSymbolsWashingTranslated[field.RenderedHtmlValue.Trim()] 361 } 362 363 } 364 @if (field.Id == "ProductCategory|CareSymbols|HangDrying") 365 { 366 if (CareSymbolsTranslated.ContainsKey("HangDrying")) 367 { 368 @CareSymbolsTranslated["HangDrying"] 369 } 370 } 371 </div> 372 </div> 373 </div> 374 } 375 </div> 376 </div> 377 </div> 378 </div> 379 } 380 381 @if (Model.RecommendedTransferTypes.Any()) 382 { 383 <div class="border-bottom"> 384 <a class="h4 d-block py-2 mb-0 spec-toggle collapsed" data-toggle="collapse" data-target="#collapseTransfer_types"> 385 @Translate("ecom - Recommended Transfer Types - Header", "Anbefalet transfer type") 386 </a> 387 <div id="collapseTransfer_types" class="collapse identity-spec-collapse identity-spec-collapse-Transfer_types mb-1"> 388 <div class="mb-2 small"> 389 @foreach (FieldOption transferType in Model.RecommendedTransferTypes) 390 { 391 <div class="row mb-1"> 392 <div class="col-4"> 393 <i class="material-icons mr-1">check</i> @transferType.Name 394 </div> 395 </div> 396 } 397 </div> 398 </div> 399 </div> 400 } 401 402 </div> 403 </div>
Redegørelse for samfundsansvar, jf. årsregnskabslovens § 99 a". ID® Ansvarlighedsrapport 2022/2023. Se her