La oricare 2 produse achizitionate mai primesti inca unul!
Descopera produsele EZZA Clean
Din cap pana in picioare!
Puternice si versatile, utile in orice mediu industrial de lucru!
Markere profesionale pentru orice domeniu!
Peste 30 de ani de experiență.
Zi după zi, doar zile bune la birou.
Cumpara produsele RTC STARS, colectioneaza stelele si revendica premiile!
Te scapam de grija printului in companie - Serviciu MPS de la RTC
Costuri reduse Timp salvat Pret special la hartie
Dezvoltam un mediu modern pentru educatie
Accesorii economice
Design modern, comfort fara efort!
Toate markerele EcoLine sunt fabricate 90 % din materiale reciclate!
Rezultate vizibile de la prima spalare!
Produsele Fairy sunt special concepute pentru mașinile comerciale de spălat vase
Solutii profesionale de curatenie si igiena
Gama completa de echipamente de protectie
Peste 4.000 produse in portofoliu
Varietate pentru orice stil!
Solutii personalizate in functie de nevoi si buget
Echipeaza-ti afacerea!
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_11727b348f0f459d99f99bc3c5ece5b1.<>c__DisplayClass0_0.<RenderIconAndImage>b__0(TextWriter __razor_helper_writer) in D:\dynamicweb.net\Solutions\Altex Holding\altexrtc.d365.staging.dynamicweb-cms.com\Files\Templates\Designs\Swift\Paragraph\Swift_Feature.cshtml:line 100 at CompiledRazorTemplates.Dynamic.RazorEngine_11727b348f0f459d99f99bc3c5ece5b1.Execute() in D:\dynamicweb.net\Solutions\Altex Holding\altexrtc.d365.staging.dynamicweb-cms.com\Files\Templates\Designs\Swift\Paragraph\Swift_Feature.cshtml:line 26 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 } 15 16 <div class="h-100 @(contentPadding)@(theme) item_@Model.Item.SystemName.ToLower()"> 17 @switch (layout) 18 { 19 case "icon-top": 20 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 21 { 22 @:<a href="@Model.Item.GetString("Link")" class="text-decoration-none d-block h-100" @target @rel> 23 } 24 25 <div class="d-flex flex-column gap-3 text-center mb-0-last-child"> 26 @{@RenderIconAndImage(layout)} 27 28 @if ( 29 !string.IsNullOrEmpty(Model.Item.GetString("Title")) && 30 !Model.Item.GetBoolean("HideTitle") || 31 !string.IsNullOrEmpty(Model.Item.GetString("Text")) 32 ) 33 { 34 <div class="mb-0-last-child"> 35 @RenderTitle() 36 @RenderBody() 37 </div> 38 } 39 40 </div> 41 42 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 43 { 44 @:</a> 45 } 46 break; 47 case "icon-left": 48 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 49 { 50 @:<a href="@Model.Item.GetString("Link")" class="text-decoration-none d-block h-100" @target @rel> 51 } 52 53 <div class="d-flex flex-row align-items-stretch gap-3 h-100 text-start"> 54 @{@RenderIconAndImage(layout)} 55 56 @if ( 57 !string.IsNullOrEmpty(Model.Item.GetString("Title")) && 58 !Model.Item.GetBoolean("HideTitle") || 59 !string.IsNullOrEmpty(Model.Item.GetString("Text")) 60 ) 61 { 62 <div class="d-flex flex-column flex-grow-1 gap-3"> 63 @RenderTitle() 64 @RenderBody() 65 </div> 66 } 67 68 </div> 69 70 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 71 { 72 @:</a> 73 } 74 break; 75 case "icon-right": 76 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 77 { 78 @:<a href="@Model.Item.GetString("Link")" class="text-decoration-none d-block h-100" @target @rel> 79 } 80 81 <div class="d-flex flex-row align-items-stretch gap-3 h-100 text-end"> 82 <div class="d-flex flex-column flex-grow-1 gap-3"> 83 @RenderTitle() 84 @RenderBody() 85 </div> 86 87 @{@RenderIconAndImage(layout)} 88 </div> 89 if (!string.IsNullOrEmpty(Model.Item.GetString("Link"))) 90 { 91 @:</a> 92 } 93 break; 94 } 95 </div> 96 97 @helper RenderIconAndImage(string layout) 98 { 99 string iconSize = Model.Item.GetRawValueString("IconSize", "2"); 100 string imageSrc = !string.IsNullOrEmpty(Model.Item.GetString("Image")) ? Model.Item.GetFile("Image").Path : ""; 101 string flexGrowClass = string.Empty; 102 103 switch (layout) { 104 case "icon-left": 105 case "icon-right": 106 flexGrowClass = "flex-grow-0"; 107 break; 108 } 109 110 if (!string.IsNullOrEmpty(Model.Item.GetString("Image"))) 111 { <div class="@flexGrowClass"> 112 @RenderIcon(imageSrc, iconSize) 113 </div> 114 } 115 else 116 { 117 string imagePath = Model.Item.GetRawValueString("Icon", ""); 118 119 if (!imagePath.ToLower().Contains("none") && imagePath != "") 120 { 121 <div class="@flexGrowClass"> 122 @RenderIcon(imagePath, iconSize) 123 </div> 124 } 125 } 126 } 127 128 @helper RenderIcon(string imagePath, string iconSize) 129 { 130 131 if (Path.GetExtension(imagePath).ToLower() == ".svg") 132 { 133 string iconColor = Model.Item.GetString("iconColor", "text-inherit"); 134 string iconOpacity = Model.Item.GetString("IconOpacity", "opacity-100"); 135 136 <div class="icon-auto @iconColor @iconOpacity" style="height: @(iconSize)px; width: @(iconSize)px;"> 137 @ReadFile(imagePath) 138 </div> 139 } 140 else 141 { 142 imagePath = "/Admin/Public/GetImage.ashx?image=" + imagePath + "&height=" + iconSize + "&width=" + iconSize + "&Crop=0&Format=WebP&Quality=100"; 143 string imgAltText = Model.Item.GetRawValueString("FeatureAltText", string.Empty); 144 145 <img loading="lazy" src="@imagePath" alt="@imgAltText" title="@Model.Item.GetString("Title")" style="height: @(iconSize)px; width: @(iconSize)px;"> 146 } 147 } 148 149 @helper RenderTitle() 150 { 151 if (!string.IsNullOrEmpty(Model.Item.GetString("Title")) && !Model.Item.GetBoolean("HideTitle")) 152 { 153 string titleFontSize = Model.Item.GetRawValueString("TitleFontSize", "h4"); 154 string titleColor = Model.Item.GetString("TitleColor", "text-inherit"); 155 string titleOpacity = Model.Item.GetString("TitleOpacity", "opacity-100"); 156 string headingLevel = Model.Item.GetString("HeadingLevel", "h2"); 157 string headingLevelStart = $"<{headingLevel} class=\"{titleFontSize} {titleColor} {titleOpacity} m-0\">"; 158 string headingLevelStop = $"</{headingLevel}>"; 159 160 @headingLevelStart 161 @Model.Item.GetString("Title") 162 @headingLevelStop 163 } 164 } 165 166 @helper RenderBody() 167 { 168 if (!string.IsNullOrEmpty(Model.Item.GetString("Text"))) 169 { 170 string textColor = Model.Item.GetString("TextColor", "text-inherit"); 171 string textOpacity = Model.Item.GetString("TextOpacity", "opacity-100"); 172 173 <p class="@textColor @textOpacity m-0">@Model.Item.GetString("Text")</p> 174 } 175 } 176
Solutii complete pentru mediul tau de lucru
Solutii personalizate in functie de spatiul disponibil si bugetul alocat. Proiectare si design.
Solutii profesionale de igiena si curatenie adaptate nevoilor din mediul tau de lucru. Consultanta de specialitate in crearea planului de igiena.
Prin abonarea la newsletter confirm ca sunt de acord cu Termenii si conditiile
Noi și partenerii noștri folosim tehnologii, inclusiv cookie-uri, pentru a colecta informații despre dumneavoastră în diverse scopuri, inclusiv::
Prin click pe „Acceptați Tot”, vă exprimați consimțământul pentru toate aceste scopuri..
Puteți afla mai multe despre utilizarea noastră a cookie-urilor și a altor tehnologii, precum și despre colectarea și prelucrarea datelor cu caracter personal, făcând clic aici: