Our story
We are a among the founders of online bike shops. We have more than 20 years experience with selling professional bikes online. Landings are getting a little rotted but the overall condition is good. Lots of branches. Removable by hand saw.
Error executing template "Designs/Swift/Paragraph/Swift_Feature.cshtml" System.NullReferenceException: Object reference not set to an instance of an object. at CompiledRazorTemplates.Dynamic.RazorEngine_2cd5fcea1d2240179fcb47adbf5df3b7.<>c__DisplayClass0_0.<RenderIconAndImage>b__0(TextWriter __razor_helper_writer) in D:\dynamicweb.net\Solutions\toitoys.cloud.dynamicweb-cms.com\Files\Templates\Designs\Swift\Paragraph\Swift_Feature.cshtml:line 107 at CompiledRazorTemplates.Dynamic.RazorEngine_2cd5fcea1d2240179fcb47adbf5df3b7.Execute() in D:\dynamicweb.net\Solutions\toitoys.cloud.dynamicweb-cms.com\Files\Templates\Designs\Swift\Paragraph\Swift_Feature.cshtml:line 27 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<Dynamicweb.Frontend.ParagraphViewModel> 2 @using System.IO 3 4 @{ 5 string layout = Model.Item.GetRawValueString("Layout", "icon-top"); 6 string contentPadding = Model.Item.GetRawValueString("ContentPadding", ""); 7 contentPadding = contentPadding == "none" ? "" : contentPadding; 8 contentPadding = contentPadding == "small" ? "p-3 p-md-3" : contentPadding; 9 contentPadding = contentPadding == "large" ? "p-5 p-md-5" : contentPadding; 10 string theme = !string.IsNullOrWhiteSpace(Model.Item.GetRawValueString("Theme")) ? " theme " + Model.Item.GetRawValueString("Theme").Replace(" ", "").Trim().ToLower() : ""; 11 12 string target = Pageview.AreaSettings.GetBoolean("OpenLinksInNewTab") && Model.Item.GetString("Link").Contains("http") ? "target=\"_blank\"" : string.Empty; 13 string rel = Pageview.AreaSettings.GetBoolean("OpenLinksInNewTab") && Model.Item.GetString("Link").Contains("http") ? "rel=\"noopener\"" : string.Empty; 14 string alignment = (!string.IsNullOrEmpty(Model.Item.GetString("Title")) && !Model.Item.GetBoolean("HideTitle")) && !string.IsNullOrEmpty(Model.Item.GetString("Text")) ? "align-items-stretch" : "align-items-center"; 15 } 16 17 <div class="h-100 @(contentPadding)@(theme) [email protected]()"> 18 @switch (layout) 19 { 20 case "icon-top": 21 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 22 { 23 @:<a href="@Model.Item.GetString("Link")" class="text-decoration-none d-block h-100" @target @rel> 24 } 25 26 <div class="d-flex flex-column gap-3 text-center mb-0-last-child"> 27 @{@RenderIconAndImage(layout)} 28 29 @if ( 30 !string.IsNullOrEmpty(Model.Item.GetString("Title")) && 31 !Model.Item.GetBoolean("HideTitle") || 32 !string.IsNullOrEmpty(Model.Item.GetString("Text")) 33 ) 34 { 35 <div class="mb-0-last-child"> 36 @{ 37 @RenderTitle() 38 @RenderBody() 39 } 40 </div> 41 } 42 43 </div> 44 45 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 46 { 47 @:</a> 48 } 49 break; 50 case "icon-left": 51 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 52 { 53 @:<a href="@Model.Item.GetString("Link")" class="text-decoration-none d-block h-100" @target @rel> 54 } 55 56 <div class="d-flex flex-row gap-3 h-100 text-start @alignment"> 57 @{@RenderIconAndImage(layout)} 58 59 @if ( 60 !string.IsNullOrEmpty(Model.Item.GetString("Title")) && 61 !Model.Item.GetBoolean("HideTitle") || 62 !string.IsNullOrEmpty(Model.Item.GetString("Text")) 63 ) 64 { 65 <div class="d-flex flex-column flex-grow-1"> 66 @{ 67 @RenderTitle() 68 @RenderBody() 69 } 70 </div> 71 } 72 73 </div> 74 75 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 76 { 77 @:</a> 78 } 79 break; 80 case "icon-right": 81 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 82 { 83 @:<a href="@Model.Item.GetString("Link")" class="text-decoration-none d-block h-100" @target @rel> 84 } 85 86 <div class="d-flex flex-row gap-3 h-100 text-end @alignment"> 87 <div class="d-flex flex-column flex-grow-1"> 88 @{ 89 @RenderTitle() 90 @RenderBody() 91 } 92 </div> 93 94 @{@RenderIconAndImage(layout)} 95 </div> 96 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 97 { 98 @:</a> 99 } 100 break; 101 } 102 </div> 103 104 @helper RenderIconAndImage(string layout) 105 { 106 string iconSize = Model.Item.GetRawValueString("IconSize", "2"); 107 string imageSrc = !string.IsNullOrEmpty(Model.Item.GetString("Image")) ? Model.Item.GetFile("Image").Path : ""; 108 string flexGrowClass = string.Empty; 109 110 switch (layout) { 111 case "icon-left": 112 case "icon-right": 113 flexGrowClass = "flex-grow-0"; 114 break; 115 } 116 117 if (!string.IsNullOrEmpty(Model.Item.GetString("Image"))) 118 { <div class="@flexGrowClass"> 119 @{ @RenderIcon(imageSrc, iconSize) } 120 </div> 121 } 122 else 123 { 124 string imagePath = Model.Item.GetRawValueString("Icon", ""); 125 126 if (!imagePath.ToLower().Contains("none") && imagePath != "") 127 { 128 <div class="@flexGrowClass"> 129 @{ @RenderIcon(imagePath, iconSize) } 130 </div> 131 } 132 } 133 } 134 135 @helper RenderIcon(string imagePath, string iconSize) 136 { 137 138 if (Path.GetExtension(imagePath).ToLower() == ".svg") 139 { 140 string iconColor = Model.Item.GetString("iconColor", "text-inherit"); 141 string iconOpacity = Model.Item.GetString("IconOpacity", "opacity-100"); 142 143 <div class="icon-auto @iconColor @iconOpacity" style="height: @(iconSize)px; width: @(iconSize)px;"> 144 @ReadFile(imagePath) 145 </div> 146 } 147 else 148 { 149 imagePath = "/Admin/Public/GetImage.ashx?image=" + imagePath + "&height=" + iconSize + "&width=" + iconSize + "&Crop=0&Format=WebP&Quality=100"; 150 string imgAltText = Model.Item.GetRawValueString("FeatureAltText", string.Empty); 151 152 <img loading="lazy" src="@imagePath" alt="@imgAltText" title="@Model.Item.GetString("Title")" style="height: @(iconSize)px; width: @(iconSize)px;"> 153 } 154 } 155 156 @helper RenderTitle() 157 { 158 if (!string.IsNullOrEmpty(Model.Item.GetString("Title")) && !Model.Item.GetBoolean("HideTitle")) 159 { 160 string titleFontSize = Model.Item.GetRawValueString("TitleFontSize", "h4"); 161 string titleColor = Model.Item.GetString("TitleColor", "text-inherit"); 162 string titleOpacity = Model.Item.GetString("TitleOpacity", "opacity-100"); 163 string headingLevel = Model.Item.GetString("HeadingLevel", "h2"); 164 string headingLevelStart = $"<{headingLevel} class=\"{titleFontSize} {titleColor} {titleOpacity} m-0\">"; 165 string headingLevelStop = $"</{headingLevel}>"; 166 167 @headingLevelStart 168 @Model.Item.GetString("Title") 169 @headingLevelStop 170 } 171 } 172 173 @helper RenderBody() 174 { 175 if (!string.IsNullOrEmpty(Model.Item.GetString("Text"))) 176 { 177 string textColor = Model.Item.GetString("TextColor", "text-inherit"); 178 string textOpacity = Model.Item.GetString("TextOpacity", "opacity-100"); 179 180 <p class="@textColor @textOpacity m-0">@Model.Item.GetString("Text")</p> 181 } 182 } 183
Error executing template "Designs/Swift/Paragraph/Swift_Feature.cshtml" System.NullReferenceException: Object reference not set to an instance of an object. at CompiledRazorTemplates.Dynamic.RazorEngine_2cd5fcea1d2240179fcb47adbf5df3b7.<>c__DisplayClass0_0.<RenderIconAndImage>b__0(TextWriter __razor_helper_writer) in D:\dynamicweb.net\Solutions\toitoys.cloud.dynamicweb-cms.com\Files\Templates\Designs\Swift\Paragraph\Swift_Feature.cshtml:line 107 at CompiledRazorTemplates.Dynamic.RazorEngine_2cd5fcea1d2240179fcb47adbf5df3b7.Execute() in D:\dynamicweb.net\Solutions\toitoys.cloud.dynamicweb-cms.com\Files\Templates\Designs\Swift\Paragraph\Swift_Feature.cshtml:line 27 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<Dynamicweb.Frontend.ParagraphViewModel> 2 @using System.IO 3 4 @{ 5 string layout = Model.Item.GetRawValueString("Layout", "icon-top"); 6 string contentPadding = Model.Item.GetRawValueString("ContentPadding", ""); 7 contentPadding = contentPadding == "none" ? "" : contentPadding; 8 contentPadding = contentPadding == "small" ? "p-3 p-md-3" : contentPadding; 9 contentPadding = contentPadding == "large" ? "p-5 p-md-5" : contentPadding; 10 string theme = !string.IsNullOrWhiteSpace(Model.Item.GetRawValueString("Theme")) ? " theme " + Model.Item.GetRawValueString("Theme").Replace(" ", "").Trim().ToLower() : ""; 11 12 string target = Pageview.AreaSettings.GetBoolean("OpenLinksInNewTab") && Model.Item.GetString("Link").Contains("http") ? "target=\"_blank\"" : string.Empty; 13 string rel = Pageview.AreaSettings.GetBoolean("OpenLinksInNewTab") && Model.Item.GetString("Link").Contains("http") ? "rel=\"noopener\"" : string.Empty; 14 string alignment = (!string.IsNullOrEmpty(Model.Item.GetString("Title")) && !Model.Item.GetBoolean("HideTitle")) && !string.IsNullOrEmpty(Model.Item.GetString("Text")) ? "align-items-stretch" : "align-items-center"; 15 } 16 17 <div class="h-100 @(contentPadding)@(theme) [email protected]()"> 18 @switch (layout) 19 { 20 case "icon-top": 21 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 22 { 23 @:<a href="@Model.Item.GetString("Link")" class="text-decoration-none d-block h-100" @target @rel> 24 } 25 26 <div class="d-flex flex-column gap-3 text-center mb-0-last-child"> 27 @{@RenderIconAndImage(layout)} 28 29 @if ( 30 !string.IsNullOrEmpty(Model.Item.GetString("Title")) && 31 !Model.Item.GetBoolean("HideTitle") || 32 !string.IsNullOrEmpty(Model.Item.GetString("Text")) 33 ) 34 { 35 <div class="mb-0-last-child"> 36 @{ 37 @RenderTitle() 38 @RenderBody() 39 } 40 </div> 41 } 42 43 </div> 44 45 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 46 { 47 @:</a> 48 } 49 break; 50 case "icon-left": 51 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 52 { 53 @:<a href="@Model.Item.GetString("Link")" class="text-decoration-none d-block h-100" @target @rel> 54 } 55 56 <div class="d-flex flex-row gap-3 h-100 text-start @alignment"> 57 @{@RenderIconAndImage(layout)} 58 59 @if ( 60 !string.IsNullOrEmpty(Model.Item.GetString("Title")) && 61 !Model.Item.GetBoolean("HideTitle") || 62 !string.IsNullOrEmpty(Model.Item.GetString("Text")) 63 ) 64 { 65 <div class="d-flex flex-column flex-grow-1"> 66 @{ 67 @RenderTitle() 68 @RenderBody() 69 } 70 </div> 71 } 72 73 </div> 74 75 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 76 { 77 @:</a> 78 } 79 break; 80 case "icon-right": 81 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 82 { 83 @:<a href="@Model.Item.GetString("Link")" class="text-decoration-none d-block h-100" @target @rel> 84 } 85 86 <div class="d-flex flex-row gap-3 h-100 text-end @alignment"> 87 <div class="d-flex flex-column flex-grow-1"> 88 @{ 89 @RenderTitle() 90 @RenderBody() 91 } 92 </div> 93 94 @{@RenderIconAndImage(layout)} 95 </div> 96 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 97 { 98 @:</a> 99 } 100 break; 101 } 102 </div> 103 104 @helper RenderIconAndImage(string layout) 105 { 106 string iconSize = Model.Item.GetRawValueString("IconSize", "2"); 107 string imageSrc = !string.IsNullOrEmpty(Model.Item.GetString("Image")) ? Model.Item.GetFile("Image").Path : ""; 108 string flexGrowClass = string.Empty; 109 110 switch (layout) { 111 case "icon-left": 112 case "icon-right": 113 flexGrowClass = "flex-grow-0"; 114 break; 115 } 116 117 if (!string.IsNullOrEmpty(Model.Item.GetString("Image"))) 118 { <div class="@flexGrowClass"> 119 @{ @RenderIcon(imageSrc, iconSize) } 120 </div> 121 } 122 else 123 { 124 string imagePath = Model.Item.GetRawValueString("Icon", ""); 125 126 if (!imagePath.ToLower().Contains("none") && imagePath != "") 127 { 128 <div class="@flexGrowClass"> 129 @{ @RenderIcon(imagePath, iconSize) } 130 </div> 131 } 132 } 133 } 134 135 @helper RenderIcon(string imagePath, string iconSize) 136 { 137 138 if (Path.GetExtension(imagePath).ToLower() == ".svg") 139 { 140 string iconColor = Model.Item.GetString("iconColor", "text-inherit"); 141 string iconOpacity = Model.Item.GetString("IconOpacity", "opacity-100"); 142 143 <div class="icon-auto @iconColor @iconOpacity" style="height: @(iconSize)px; width: @(iconSize)px;"> 144 @ReadFile(imagePath) 145 </div> 146 } 147 else 148 { 149 imagePath = "/Admin/Public/GetImage.ashx?image=" + imagePath + "&height=" + iconSize + "&width=" + iconSize + "&Crop=0&Format=WebP&Quality=100"; 150 string imgAltText = Model.Item.GetRawValueString("FeatureAltText", string.Empty); 151 152 <img loading="lazy" src="@imagePath" alt="@imgAltText" title="@Model.Item.GetString("Title")" style="height: @(iconSize)px; width: @(iconSize)px;"> 153 } 154 } 155 156 @helper RenderTitle() 157 { 158 if (!string.IsNullOrEmpty(Model.Item.GetString("Title")) && !Model.Item.GetBoolean("HideTitle")) 159 { 160 string titleFontSize = Model.Item.GetRawValueString("TitleFontSize", "h4"); 161 string titleColor = Model.Item.GetString("TitleColor", "text-inherit"); 162 string titleOpacity = Model.Item.GetString("TitleOpacity", "opacity-100"); 163 string headingLevel = Model.Item.GetString("HeadingLevel", "h2"); 164 string headingLevelStart = $"<{headingLevel} class=\"{titleFontSize} {titleColor} {titleOpacity} m-0\">"; 165 string headingLevelStop = $"</{headingLevel}>"; 166 167 @headingLevelStart 168 @Model.Item.GetString("Title") 169 @headingLevelStop 170 } 171 } 172 173 @helper RenderBody() 174 { 175 if (!string.IsNullOrEmpty(Model.Item.GetString("Text"))) 176 { 177 string textColor = Model.Item.GetString("TextColor", "text-inherit"); 178 string textOpacity = Model.Item.GetString("TextOpacity", "opacity-100"); 179 180 <p class="@textColor @textOpacity m-0">@Model.Item.GetString("Text")</p> 181 } 182 } 183
Error executing template "Designs/Swift/Paragraph/Swift_Feature.cshtml" System.NullReferenceException: Object reference not set to an instance of an object. at CompiledRazorTemplates.Dynamic.RazorEngine_2cd5fcea1d2240179fcb47adbf5df3b7.<>c__DisplayClass0_0.<RenderIconAndImage>b__0(TextWriter __razor_helper_writer) in D:\dynamicweb.net\Solutions\toitoys.cloud.dynamicweb-cms.com\Files\Templates\Designs\Swift\Paragraph\Swift_Feature.cshtml:line 107 at CompiledRazorTemplates.Dynamic.RazorEngine_2cd5fcea1d2240179fcb47adbf5df3b7.Execute() in D:\dynamicweb.net\Solutions\toitoys.cloud.dynamicweb-cms.com\Files\Templates\Designs\Swift\Paragraph\Swift_Feature.cshtml:line 27 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<Dynamicweb.Frontend.ParagraphViewModel> 2 @using System.IO 3 4 @{ 5 string layout = Model.Item.GetRawValueString("Layout", "icon-top"); 6 string contentPadding = Model.Item.GetRawValueString("ContentPadding", ""); 7 contentPadding = contentPadding == "none" ? "" : contentPadding; 8 contentPadding = contentPadding == "small" ? "p-3 p-md-3" : contentPadding; 9 contentPadding = contentPadding == "large" ? "p-5 p-md-5" : contentPadding; 10 string theme = !string.IsNullOrWhiteSpace(Model.Item.GetRawValueString("Theme")) ? " theme " + Model.Item.GetRawValueString("Theme").Replace(" ", "").Trim().ToLower() : ""; 11 12 string target = Pageview.AreaSettings.GetBoolean("OpenLinksInNewTab") && Model.Item.GetString("Link").Contains("http") ? "target=\"_blank\"" : string.Empty; 13 string rel = Pageview.AreaSettings.GetBoolean("OpenLinksInNewTab") && Model.Item.GetString("Link").Contains("http") ? "rel=\"noopener\"" : string.Empty; 14 string alignment = (!string.IsNullOrEmpty(Model.Item.GetString("Title")) && !Model.Item.GetBoolean("HideTitle")) && !string.IsNullOrEmpty(Model.Item.GetString("Text")) ? "align-items-stretch" : "align-items-center"; 15 } 16 17 <div class="h-100 @(contentPadding)@(theme) [email protected]()"> 18 @switch (layout) 19 { 20 case "icon-top": 21 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 22 { 23 @:<a href="@Model.Item.GetString("Link")" class="text-decoration-none d-block h-100" @target @rel> 24 } 25 26 <div class="d-flex flex-column gap-3 text-center mb-0-last-child"> 27 @{@RenderIconAndImage(layout)} 28 29 @if ( 30 !string.IsNullOrEmpty(Model.Item.GetString("Title")) && 31 !Model.Item.GetBoolean("HideTitle") || 32 !string.IsNullOrEmpty(Model.Item.GetString("Text")) 33 ) 34 { 35 <div class="mb-0-last-child"> 36 @{ 37 @RenderTitle() 38 @RenderBody() 39 } 40 </div> 41 } 42 43 </div> 44 45 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 46 { 47 @:</a> 48 } 49 break; 50 case "icon-left": 51 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 52 { 53 @:<a href="@Model.Item.GetString("Link")" class="text-decoration-none d-block h-100" @target @rel> 54 } 55 56 <div class="d-flex flex-row gap-3 h-100 text-start @alignment"> 57 @{@RenderIconAndImage(layout)} 58 59 @if ( 60 !string.IsNullOrEmpty(Model.Item.GetString("Title")) && 61 !Model.Item.GetBoolean("HideTitle") || 62 !string.IsNullOrEmpty(Model.Item.GetString("Text")) 63 ) 64 { 65 <div class="d-flex flex-column flex-grow-1"> 66 @{ 67 @RenderTitle() 68 @RenderBody() 69 } 70 </div> 71 } 72 73 </div> 74 75 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 76 { 77 @:</a> 78 } 79 break; 80 case "icon-right": 81 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 82 { 83 @:<a href="@Model.Item.GetString("Link")" class="text-decoration-none d-block h-100" @target @rel> 84 } 85 86 <div class="d-flex flex-row gap-3 h-100 text-end @alignment"> 87 <div class="d-flex flex-column flex-grow-1"> 88 @{ 89 @RenderTitle() 90 @RenderBody() 91 } 92 </div> 93 94 @{@RenderIconAndImage(layout)} 95 </div> 96 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 97 { 98 @:</a> 99 } 100 break; 101 } 102 </div> 103 104 @helper RenderIconAndImage(string layout) 105 { 106 string iconSize = Model.Item.GetRawValueString("IconSize", "2"); 107 string imageSrc = !string.IsNullOrEmpty(Model.Item.GetString("Image")) ? Model.Item.GetFile("Image").Path : ""; 108 string flexGrowClass = string.Empty; 109 110 switch (layout) { 111 case "icon-left": 112 case "icon-right": 113 flexGrowClass = "flex-grow-0"; 114 break; 115 } 116 117 if (!string.IsNullOrEmpty(Model.Item.GetString("Image"))) 118 { <div class="@flexGrowClass"> 119 @{ @RenderIcon(imageSrc, iconSize) } 120 </div> 121 } 122 else 123 { 124 string imagePath = Model.Item.GetRawValueString("Icon", ""); 125 126 if (!imagePath.ToLower().Contains("none") && imagePath != "") 127 { 128 <div class="@flexGrowClass"> 129 @{ @RenderIcon(imagePath, iconSize) } 130 </div> 131 } 132 } 133 } 134 135 @helper RenderIcon(string imagePath, string iconSize) 136 { 137 138 if (Path.GetExtension(imagePath).ToLower() == ".svg") 139 { 140 string iconColor = Model.Item.GetString("iconColor", "text-inherit"); 141 string iconOpacity = Model.Item.GetString("IconOpacity", "opacity-100"); 142 143 <div class="icon-auto @iconColor @iconOpacity" style="height: @(iconSize)px; width: @(iconSize)px;"> 144 @ReadFile(imagePath) 145 </div> 146 } 147 else 148 { 149 imagePath = "/Admin/Public/GetImage.ashx?image=" + imagePath + "&height=" + iconSize + "&width=" + iconSize + "&Crop=0&Format=WebP&Quality=100"; 150 string imgAltText = Model.Item.GetRawValueString("FeatureAltText", string.Empty); 151 152 <img loading="lazy" src="@imagePath" alt="@imgAltText" title="@Model.Item.GetString("Title")" style="height: @(iconSize)px; width: @(iconSize)px;"> 153 } 154 } 155 156 @helper RenderTitle() 157 { 158 if (!string.IsNullOrEmpty(Model.Item.GetString("Title")) && !Model.Item.GetBoolean("HideTitle")) 159 { 160 string titleFontSize = Model.Item.GetRawValueString("TitleFontSize", "h4"); 161 string titleColor = Model.Item.GetString("TitleColor", "text-inherit"); 162 string titleOpacity = Model.Item.GetString("TitleOpacity", "opacity-100"); 163 string headingLevel = Model.Item.GetString("HeadingLevel", "h2"); 164 string headingLevelStart = $"<{headingLevel} class=\"{titleFontSize} {titleColor} {titleOpacity} m-0\">"; 165 string headingLevelStop = $"</{headingLevel}>"; 166 167 @headingLevelStart 168 @Model.Item.GetString("Title") 169 @headingLevelStop 170 } 171 } 172 173 @helper RenderBody() 174 { 175 if (!string.IsNullOrEmpty(Model.Item.GetString("Text"))) 176 { 177 string textColor = Model.Item.GetString("TextColor", "text-inherit"); 178 string textOpacity = Model.Item.GetString("TextOpacity", "opacity-100"); 179 180 <p class="@textColor @textOpacity m-0">@Model.Item.GetString("Text")</p> 181 } 182 } 183
Looking for a great partnership with an experienced bikes seller?
In the beginning
It all started in our small cabin in the poor outskirts of Aarhus.
This is a classic Black Mountain trail and was featured in Freehub Magazine's Pisgah Photo Book: Issue 6. Starts off flowy with some good jumps then gets into more technical rock gardens.
The area can be accessed from the end of Densmore's Lane, the end of Old Petty Harbour Road and from Huntingdale Drive. Amazing views of Castle valley are afforded after 50 meters of riding.
The continuing success
Ridgeline is a crown jewel of Dupont State Recreational Forest.
From Lake Imaging Road it is a steady but not steep climb to the high point just before the intersection with Hooker Creek Trail. It is not hard to get to and is very fun to ride.
Most climbs are of the paved/fireroad variety, most descents are a mix of loose rock, fixed rock, and good dirt. Technically you can go both directions but everyone typically starts from Guardsman.