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_ef153104cd314f33822741c102d8d7c3.<>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 108 at CompiledRazorTemplates.Dynamic.RazorEngine_ef153104cd314f33822741c102d8d7c3.Execute() in D:\dynamicweb.net\Solutions\toitoys.cloud.dynamicweb-cms.com\Files\Templates\Designs\Swift\Paragraph\Swift_Feature.cshtml:line 28 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 <div id="@Model.ID" class="user-select-none" style="scroll-margin-top:var(--header-height,150px)"></div> 19 @switch (layout) 20 { 21 case "icon-top": 22 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 23 { 24 @:<a href="@Model.Item.GetString("Link")" class="text-decoration-none d-block h-100" @target @rel> 25 } 26 27 <div class="d-flex flex-column gap-3 text-center mb-0-last-child"> 28 @{@RenderIconAndImage(layout)} 29 30 @if ( 31 !string.IsNullOrEmpty(Model.Item.GetString("Title")) && 32 !Model.Item.GetBoolean("HideTitle") || 33 !string.IsNullOrEmpty(Model.Item.GetString("Text")) 34 ) 35 { 36 <div class="mb-0-last-child"> 37 @{ 38 @RenderTitle() 39 @RenderBody() 40 } 41 </div> 42 } 43 44 </div> 45 46 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 47 { 48 @:</a> 49 } 50 break; 51 case "icon-left": 52 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 53 { 54 @:<a href="@Model.Item.GetString("Link")" class="text-decoration-none d-block h-100" @target @rel> 55 } 56 57 <div class="d-flex flex-row gap-3 h-100 text-start @alignment"> 58 @{@RenderIconAndImage(layout)} 59 60 @if ( 61 !string.IsNullOrEmpty(Model.Item.GetString("Title")) && 62 !Model.Item.GetBoolean("HideTitle") || 63 !string.IsNullOrEmpty(Model.Item.GetString("Text")) 64 ) 65 { 66 <div class="d-flex flex-column flex-grow-1"> 67 @{ 68 @RenderTitle() 69 @RenderBody() 70 } 71 </div> 72 } 73 74 </div> 75 76 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 77 { 78 @:</a> 79 } 80 break; 81 case "icon-right": 82 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 83 { 84 @:<a href="@Model.Item.GetString("Link")" class="text-decoration-none d-block h-100" @target @rel> 85 } 86 87 <div class="d-flex flex-row gap-3 h-100 text-end @alignment"> 88 <div class="d-flex flex-column flex-grow-1"> 89 @{ 90 @RenderTitle() 91 @RenderBody() 92 } 93 </div> 94 95 @{@RenderIconAndImage(layout)} 96 </div> 97 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 98 { 99 @:</a> 100 } 101 break; 102 } 103 </div> 104 105 @helper RenderIconAndImage(string layout) 106 { 107 string iconSize = Model.Item.GetRawValueString("IconSize", "2"); 108 string imageSrc = !string.IsNullOrEmpty(Model.Item.GetString("Image")) ? Model.Item.GetFile("Image").Path : ""; 109 string flexGrowClass = string.Empty; 110 111 switch (layout) { 112 case "icon-left": 113 case "icon-right": 114 flexGrowClass = "flex-grow-0"; 115 break; 116 } 117 118 if (!string.IsNullOrEmpty(Model.Item.GetString("Image"))) 119 { <div class="@flexGrowClass"> 120 @{ @RenderIcon(imageSrc, iconSize) } 121 </div> 122 } 123 else 124 { 125 string imagePath = Model.Item.GetRawValueString("Icon", ""); 126 127 if (!imagePath.ToLower().Contains("none") && imagePath != "") 128 { 129 <div class="@flexGrowClass"> 130 @{ @RenderIcon(imagePath, iconSize) } 131 </div> 132 } 133 } 134 } 135 136 @helper RenderIcon(string imagePath, string iconSize) 137 { 138 139 if (Path.GetExtension(imagePath).ToLower() == ".svg") 140 { 141 string iconColor = Model.Item.GetString("iconColor", "text-inherit"); 142 string iconOpacity = Model.Item.GetString("IconOpacity", "opacity-100"); 143 144 <div class="icon-auto @iconColor @iconOpacity" style="height: @(iconSize)px; width: @(iconSize)px;"> 145 @ReadFile(imagePath) 146 </div> 147 } 148 else 149 { 150 imagePath = "/Admin/Public/GetImage.ashx?image=" + imagePath + "&height=" + iconSize + "&width=" + iconSize + "&Crop=0&format=webp"; 151 string imgAltText = Model.Item.GetRawValueString("FeatureAltText", string.Empty); 152 153 <img loading="lazy" src="@imagePath" alt="@imgAltText" title="@Model.Item.GetString("Title")" style="height: @(iconSize)px; width: @(iconSize)px;"> 154 } 155 } 156 157 @helper RenderTitle() 158 { 159 if (!string.IsNullOrEmpty(Model.Item.GetString("Title")) && !Model.Item.GetBoolean("HideTitle")) 160 { 161 string titleFontSize = Model.Item.GetRawValueString("TitleFontSize", "h4"); 162 string titleColor = Model.Item.GetString("TitleColor", "text-inherit"); 163 string titleOpacity = Model.Item.GetString("TitleOpacity", "opacity-100"); 164 string headingLevel = Model.Item.GetString("HeadingLevel", "h2"); 165 string headingLevelStart = $"<{headingLevel} class=\"{titleFontSize} {titleColor} {titleOpacity} m-0\">"; 166 string headingLevelStop = $"</{headingLevel}>"; 167 168 @headingLevelStart 169 @Model.Item.GetString("Title") 170 @headingLevelStop 171 } 172 } 173 174 @helper RenderBody() 175 { 176 if (!string.IsNullOrEmpty(Model.Item.GetString("Text"))) 177 { 178 string textColor = Model.Item.GetString("TextColor", "text-inherit"); 179 string textOpacity = Model.Item.GetString("TextOpacity", "opacity-100"); 180 181 <p class="@textColor @textOpacity m-0">@Model.Item.GetString("Text")</p> 182 } 183 } 184
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_ef153104cd314f33822741c102d8d7c3.<>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 108 at CompiledRazorTemplates.Dynamic.RazorEngine_ef153104cd314f33822741c102d8d7c3.Execute() in D:\dynamicweb.net\Solutions\toitoys.cloud.dynamicweb-cms.com\Files\Templates\Designs\Swift\Paragraph\Swift_Feature.cshtml:line 28 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 <div id="@Model.ID" class="user-select-none" style="scroll-margin-top:var(--header-height,150px)"></div> 19 @switch (layout) 20 { 21 case "icon-top": 22 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 23 { 24 @:<a href="@Model.Item.GetString("Link")" class="text-decoration-none d-block h-100" @target @rel> 25 } 26 27 <div class="d-flex flex-column gap-3 text-center mb-0-last-child"> 28 @{@RenderIconAndImage(layout)} 29 30 @if ( 31 !string.IsNullOrEmpty(Model.Item.GetString("Title")) && 32 !Model.Item.GetBoolean("HideTitle") || 33 !string.IsNullOrEmpty(Model.Item.GetString("Text")) 34 ) 35 { 36 <div class="mb-0-last-child"> 37 @{ 38 @RenderTitle() 39 @RenderBody() 40 } 41 </div> 42 } 43 44 </div> 45 46 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 47 { 48 @:</a> 49 } 50 break; 51 case "icon-left": 52 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 53 { 54 @:<a href="@Model.Item.GetString("Link")" class="text-decoration-none d-block h-100" @target @rel> 55 } 56 57 <div class="d-flex flex-row gap-3 h-100 text-start @alignment"> 58 @{@RenderIconAndImage(layout)} 59 60 @if ( 61 !string.IsNullOrEmpty(Model.Item.GetString("Title")) && 62 !Model.Item.GetBoolean("HideTitle") || 63 !string.IsNullOrEmpty(Model.Item.GetString("Text")) 64 ) 65 { 66 <div class="d-flex flex-column flex-grow-1"> 67 @{ 68 @RenderTitle() 69 @RenderBody() 70 } 71 </div> 72 } 73 74 </div> 75 76 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 77 { 78 @:</a> 79 } 80 break; 81 case "icon-right": 82 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 83 { 84 @:<a href="@Model.Item.GetString("Link")" class="text-decoration-none d-block h-100" @target @rel> 85 } 86 87 <div class="d-flex flex-row gap-3 h-100 text-end @alignment"> 88 <div class="d-flex flex-column flex-grow-1"> 89 @{ 90 @RenderTitle() 91 @RenderBody() 92 } 93 </div> 94 95 @{@RenderIconAndImage(layout)} 96 </div> 97 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 98 { 99 @:</a> 100 } 101 break; 102 } 103 </div> 104 105 @helper RenderIconAndImage(string layout) 106 { 107 string iconSize = Model.Item.GetRawValueString("IconSize", "2"); 108 string imageSrc = !string.IsNullOrEmpty(Model.Item.GetString("Image")) ? Model.Item.GetFile("Image").Path : ""; 109 string flexGrowClass = string.Empty; 110 111 switch (layout) { 112 case "icon-left": 113 case "icon-right": 114 flexGrowClass = "flex-grow-0"; 115 break; 116 } 117 118 if (!string.IsNullOrEmpty(Model.Item.GetString("Image"))) 119 { <div class="@flexGrowClass"> 120 @{ @RenderIcon(imageSrc, iconSize) } 121 </div> 122 } 123 else 124 { 125 string imagePath = Model.Item.GetRawValueString("Icon", ""); 126 127 if (!imagePath.ToLower().Contains("none") && imagePath != "") 128 { 129 <div class="@flexGrowClass"> 130 @{ @RenderIcon(imagePath, iconSize) } 131 </div> 132 } 133 } 134 } 135 136 @helper RenderIcon(string imagePath, string iconSize) 137 { 138 139 if (Path.GetExtension(imagePath).ToLower() == ".svg") 140 { 141 string iconColor = Model.Item.GetString("iconColor", "text-inherit"); 142 string iconOpacity = Model.Item.GetString("IconOpacity", "opacity-100"); 143 144 <div class="icon-auto @iconColor @iconOpacity" style="height: @(iconSize)px; width: @(iconSize)px;"> 145 @ReadFile(imagePath) 146 </div> 147 } 148 else 149 { 150 imagePath = "/Admin/Public/GetImage.ashx?image=" + imagePath + "&height=" + iconSize + "&width=" + iconSize + "&Crop=0&format=webp"; 151 string imgAltText = Model.Item.GetRawValueString("FeatureAltText", string.Empty); 152 153 <img loading="lazy" src="@imagePath" alt="@imgAltText" title="@Model.Item.GetString("Title")" style="height: @(iconSize)px; width: @(iconSize)px;"> 154 } 155 } 156 157 @helper RenderTitle() 158 { 159 if (!string.IsNullOrEmpty(Model.Item.GetString("Title")) && !Model.Item.GetBoolean("HideTitle")) 160 { 161 string titleFontSize = Model.Item.GetRawValueString("TitleFontSize", "h4"); 162 string titleColor = Model.Item.GetString("TitleColor", "text-inherit"); 163 string titleOpacity = Model.Item.GetString("TitleOpacity", "opacity-100"); 164 string headingLevel = Model.Item.GetString("HeadingLevel", "h2"); 165 string headingLevelStart = $"<{headingLevel} class=\"{titleFontSize} {titleColor} {titleOpacity} m-0\">"; 166 string headingLevelStop = $"</{headingLevel}>"; 167 168 @headingLevelStart 169 @Model.Item.GetString("Title") 170 @headingLevelStop 171 } 172 } 173 174 @helper RenderBody() 175 { 176 if (!string.IsNullOrEmpty(Model.Item.GetString("Text"))) 177 { 178 string textColor = Model.Item.GetString("TextColor", "text-inherit"); 179 string textOpacity = Model.Item.GetString("TextOpacity", "opacity-100"); 180 181 <p class="@textColor @textOpacity m-0">@Model.Item.GetString("Text")</p> 182 } 183 } 184
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_ef153104cd314f33822741c102d8d7c3.<>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 108 at CompiledRazorTemplates.Dynamic.RazorEngine_ef153104cd314f33822741c102d8d7c3.Execute() in D:\dynamicweb.net\Solutions\toitoys.cloud.dynamicweb-cms.com\Files\Templates\Designs\Swift\Paragraph\Swift_Feature.cshtml:line 28 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 <div id="@Model.ID" class="user-select-none" style="scroll-margin-top:var(--header-height,150px)"></div> 19 @switch (layout) 20 { 21 case "icon-top": 22 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 23 { 24 @:<a href="@Model.Item.GetString("Link")" class="text-decoration-none d-block h-100" @target @rel> 25 } 26 27 <div class="d-flex flex-column gap-3 text-center mb-0-last-child"> 28 @{@RenderIconAndImage(layout)} 29 30 @if ( 31 !string.IsNullOrEmpty(Model.Item.GetString("Title")) && 32 !Model.Item.GetBoolean("HideTitle") || 33 !string.IsNullOrEmpty(Model.Item.GetString("Text")) 34 ) 35 { 36 <div class="mb-0-last-child"> 37 @{ 38 @RenderTitle() 39 @RenderBody() 40 } 41 </div> 42 } 43 44 </div> 45 46 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 47 { 48 @:</a> 49 } 50 break; 51 case "icon-left": 52 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 53 { 54 @:<a href="@Model.Item.GetString("Link")" class="text-decoration-none d-block h-100" @target @rel> 55 } 56 57 <div class="d-flex flex-row gap-3 h-100 text-start @alignment"> 58 @{@RenderIconAndImage(layout)} 59 60 @if ( 61 !string.IsNullOrEmpty(Model.Item.GetString("Title")) && 62 !Model.Item.GetBoolean("HideTitle") || 63 !string.IsNullOrEmpty(Model.Item.GetString("Text")) 64 ) 65 { 66 <div class="d-flex flex-column flex-grow-1"> 67 @{ 68 @RenderTitle() 69 @RenderBody() 70 } 71 </div> 72 } 73 74 </div> 75 76 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 77 { 78 @:</a> 79 } 80 break; 81 case "icon-right": 82 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 83 { 84 @:<a href="@Model.Item.GetString("Link")" class="text-decoration-none d-block h-100" @target @rel> 85 } 86 87 <div class="d-flex flex-row gap-3 h-100 text-end @alignment"> 88 <div class="d-flex flex-column flex-grow-1"> 89 @{ 90 @RenderTitle() 91 @RenderBody() 92 } 93 </div> 94 95 @{@RenderIconAndImage(layout)} 96 </div> 97 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 98 { 99 @:</a> 100 } 101 break; 102 } 103 </div> 104 105 @helper RenderIconAndImage(string layout) 106 { 107 string iconSize = Model.Item.GetRawValueString("IconSize", "2"); 108 string imageSrc = !string.IsNullOrEmpty(Model.Item.GetString("Image")) ? Model.Item.GetFile("Image").Path : ""; 109 string flexGrowClass = string.Empty; 110 111 switch (layout) { 112 case "icon-left": 113 case "icon-right": 114 flexGrowClass = "flex-grow-0"; 115 break; 116 } 117 118 if (!string.IsNullOrEmpty(Model.Item.GetString("Image"))) 119 { <div class="@flexGrowClass"> 120 @{ @RenderIcon(imageSrc, iconSize) } 121 </div> 122 } 123 else 124 { 125 string imagePath = Model.Item.GetRawValueString("Icon", ""); 126 127 if (!imagePath.ToLower().Contains("none") && imagePath != "") 128 { 129 <div class="@flexGrowClass"> 130 @{ @RenderIcon(imagePath, iconSize) } 131 </div> 132 } 133 } 134 } 135 136 @helper RenderIcon(string imagePath, string iconSize) 137 { 138 139 if (Path.GetExtension(imagePath).ToLower() == ".svg") 140 { 141 string iconColor = Model.Item.GetString("iconColor", "text-inherit"); 142 string iconOpacity = Model.Item.GetString("IconOpacity", "opacity-100"); 143 144 <div class="icon-auto @iconColor @iconOpacity" style="height: @(iconSize)px; width: @(iconSize)px;"> 145 @ReadFile(imagePath) 146 </div> 147 } 148 else 149 { 150 imagePath = "/Admin/Public/GetImage.ashx?image=" + imagePath + "&height=" + iconSize + "&width=" + iconSize + "&Crop=0&format=webp"; 151 string imgAltText = Model.Item.GetRawValueString("FeatureAltText", string.Empty); 152 153 <img loading="lazy" src="@imagePath" alt="@imgAltText" title="@Model.Item.GetString("Title")" style="height: @(iconSize)px; width: @(iconSize)px;"> 154 } 155 } 156 157 @helper RenderTitle() 158 { 159 if (!string.IsNullOrEmpty(Model.Item.GetString("Title")) && !Model.Item.GetBoolean("HideTitle")) 160 { 161 string titleFontSize = Model.Item.GetRawValueString("TitleFontSize", "h4"); 162 string titleColor = Model.Item.GetString("TitleColor", "text-inherit"); 163 string titleOpacity = Model.Item.GetString("TitleOpacity", "opacity-100"); 164 string headingLevel = Model.Item.GetString("HeadingLevel", "h2"); 165 string headingLevelStart = $"<{headingLevel} class=\"{titleFontSize} {titleColor} {titleOpacity} m-0\">"; 166 string headingLevelStop = $"</{headingLevel}>"; 167 168 @headingLevelStart 169 @Model.Item.GetString("Title") 170 @headingLevelStop 171 } 172 } 173 174 @helper RenderBody() 175 { 176 if (!string.IsNullOrEmpty(Model.Item.GetString("Text"))) 177 { 178 string textColor = Model.Item.GetString("TextColor", "text-inherit"); 179 string textOpacity = Model.Item.GetString("TextOpacity", "opacity-100"); 180 181 <p class="@textColor @textOpacity m-0">@Model.Item.GetString("Text")</p> 182 } 183 } 184
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.