Selvbetjening

Error executing template "/Designs/Paragraph/Banner_B2.cshtml"
System.Net.WebException: The remote server returned an error: (404) Not Found.
   at System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request)
   at System.Net.WebClient.DownloadString(Uri address)
   at CompiledRazorTemplates.Dynamic.RazorEngine_b3ee74ba000a4863a6301a74a34f3c42.AffaldsVidenFunc.GetReelGenanvendelseYear() in C:\home\site\wwwroot\DinForsyning\Files\Templates\Designs\Paragraph\Banner_B2.cshtml:line 126
   at CompiledRazorTemplates.Dynamic.RazorEngine_b3ee74ba000a4863a6301a74a34f3c42.Execute() in C:\home\site\wwwroot\DinForsyning\Files\Templates\Designs\Paragraph\Banner_B2.cshtml:line 194
   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 @using System.Net 2 @using System.Text 3 @functions{ 4 public class AffaldsVidenFunc { 5 // private static readonly string API_KEY = "Hdj!^$Pn9Dl*uXTeZ&7fZEmdPG9s&Yg4DQMy13yw"; 6 // 7 // public static Newtonsoft.Json.Linq.JToken GetHKode(string kommune, string hkode) { 8 // var cacheKey = "AffaldsVidenFunc:GetHKode(" + kommune + ", " + hkode + ")"; 9 // var result = default(Newtonsoft.Json.Linq.JToken); 10 // 11 // if (!Dynamicweb.Caching.Cache.Current.TryGet<Newtonsoft.Json.Linq.JToken>(cacheKey, out result)) { 12 // using (var wc = new WebClient()) { 13 // wc.Headers["X-API-KEY"] = API_KEY; 14 // wc.Encoding = Encoding.UTF8; 15 // 16 // var json = wc.DownloadString("https://api.affaldsviden.info/kommune-" + kommune + "/hkode-" + hkode); 17 // 18 // result = Newtonsoft.Json.Linq.JToken.Parse(json); 19 // 20 // Dynamicweb.Caching.Cache.Current.Set(cacheKey, result, new Dynamicweb.Caching.CacheItemPolicy { 21 // AbsoluteExpiration = DateTimeOffset.UtcNow.AddMinutes(5.0) 22 // }); 23 // } 24 // } 25 // 26 // return result; 27 // } 28 // 29 // public static Newtonsoft.Json.Linq.JToken GetGenbrugsprocent(string kommune) { 30 // var cacheKey = "AffaldsVidenFunc:GetGenbrugsprocent(" + kommune + ")"; 31 // var result = default(Newtonsoft.Json.Linq.JToken); 32 // 33 // if (!Dynamicweb.Caching.Cache.Current.TryGet<Newtonsoft.Json.Linq.JToken>(cacheKey, out result)) { 34 // using (var wc = new WebClient()) { 35 // wc.Headers["X-API-KEY"] = API_KEY; 36 // wc.Encoding = Encoding.UTF8; 37 // 38 // var json = wc.DownloadString("https://api.affaldsviden.info/kommune-" + kommune + "/genbrugsprocent"); 39 // 40 // result = Newtonsoft.Json.Linq.JToken.Parse(json); 41 // 42 // Dynamicweb.Caching.Cache.Current.Set(cacheKey, result, new Dynamicweb.Caching.CacheItemPolicy { 43 // AbsoluteExpiration = DateTimeOffset.UtcNow.AddMinutes(5.0) 44 // }); 45 // } 46 // } 47 // 48 // return result; 49 // } 50 // 51 // public static Newtonsoft.Json.Linq.JToken GetMadaffaldTilEl(string kommune) { 52 // var cacheKey = "AffaldsVidenFunc:GetMadaffaldTilEl(" + kommune + ")"; 53 // var result = default(Newtonsoft.Json.Linq.JToken); 54 // 55 // if (!Dynamicweb.Caching.Cache.Current.TryGet<Newtonsoft.Json.Linq.JToken>(cacheKey, out result)) { 56 // using (var wc = new WebClient()) { 57 // wc.Headers["X-API-KEY"] = API_KEY; 58 // wc.Encoding = Encoding.UTF8; 59 // 60 // var json = wc.DownloadString("https://api.affaldsviden.info/kommune-" + kommune + "/madaffald-til-el"); 61 // 62 // result = Newtonsoft.Json.Linq.JToken.Parse(json); 63 // 64 // Dynamicweb.Caching.Cache.Current.Set(cacheKey, result, new Dynamicweb.Caching.CacheItemPolicy { 65 // AbsoluteExpiration = DateTimeOffset.UtcNow.AddMinutes(5.0) 66 // }); 67 // } 68 // } 69 // 70 // return result; 71 // } 72 73 public static Newtonsoft.Json.Linq.JToken GetMadaffaldTilEl(int months) { 74 var cacheKey = "AffaldsVidenFunc:GetMadaffaldTilEl(" + months + ")"; 75 var result = default(Newtonsoft.Json.Linq.JToken); 76 77 if (!Dynamicweb.Caching.Cache.Current.TryGet<Newtonsoft.Json.Linq.JToken>(cacheKey, out result)) { 78 using (var wc = new WebClient()) { 79 wc.Headers["Authorization"] = "Basic VmFyZGU6ZExsXjdeRUR5a0VkNDl1amYk"; 80 wc.Encoding = Encoding.UTF8; 81 82 var json = wc.DownloadString("https://affaldsviden.info/vardeapi.php?madaffald-til-el=" + months); 83 84 result = Newtonsoft.Json.Linq.JToken.Parse(json); 85 86 Dynamicweb.Caching.Cache.Current.Set(cacheKey, result, new Dynamicweb.Caching.CacheItemPolicy { 87 AbsoluteExpiration = DateTimeOffset.UtcNow.AddMinutes(5.0) 88 }); 89 } 90 } 91 92 return result; 93 } 94 95 public static Newtonsoft.Json.Linq.JToken GetReelGenanvendelse(int months) { 96 var cacheKey = "AffaldsVidenFunc:GetReelGenanvendelse(" + months + ")"; 97 var result = default(Newtonsoft.Json.Linq.JToken); 98 99 if (!Dynamicweb.Caching.Cache.Current.TryGet<Newtonsoft.Json.Linq.JToken>(cacheKey, out result)) { 100 using (var wc = new WebClient()) { 101 wc.Headers["Authorization"] = "Basic VmFyZGU6ZExsXjdeRUR5a0VkNDl1amYk"; 102 wc.Encoding = Encoding.UTF8; 103 104 var json = wc.DownloadString("https://affaldsviden.info/vardeapi.php?reel-genanvendelse=" + months); 105 106 result = Newtonsoft.Json.Linq.JToken.Parse(json); 107 108 Dynamicweb.Caching.Cache.Current.Set(cacheKey, result, new Dynamicweb.Caching.CacheItemPolicy { 109 AbsoluteExpiration = DateTimeOffset.UtcNow.AddMinutes(60.0 * 12) 110 }); 111 } 112 } 113 114 return result; 115 } 116 117 public static Newtonsoft.Json.Linq.JToken GetReelGenanvendelseYear() { 118 var cacheKey = "AffaldsVidenFunc:GetReelGenanvendelseYear()"; 119 var result = default(Newtonsoft.Json.Linq.JToken); 120 121 if (!Dynamicweb.Caching.Cache.Current.TryGet<Newtonsoft.Json.Linq.JToken>(cacheKey, out result)) { 122 using (var wc = new WebClient()) { 123 wc.Headers["Authorization"] = "Basic VmFyZGU6ZExsXjdeRUR5a0VkNDl1amYk"; 124 wc.Encoding = Encoding.UTF8; 125 126 var json = wc.DownloadString("https://affaldsviden.info/vardeapi.php?reel-genanvendelse-year"); 127 128 result = Newtonsoft.Json.Linq.JToken.Parse(json); 129 130 Dynamicweb.Caching.Cache.Current.Set(cacheKey, result, new Dynamicweb.Caching.CacheItemPolicy { 131 AbsoluteExpiration = DateTimeOffset.UtcNow.AddMinutes(60.0 * 12) 132 }); 133 } 134 } 135 136 return result; 137 } 138 139 public static Newtonsoft.Json.Linq.JToken GetDe10Fraktioner(int months) { 140 var cacheKey = "AffaldsVidenFunc:GetDe10Fraktioner(" + months + ")"; 141 var result = default(Newtonsoft.Json.Linq.JToken); 142 143 if (!Dynamicweb.Caching.Cache.Current.TryGet<Newtonsoft.Json.Linq.JToken>(cacheKey, out result)) { 144 using (var wc = new WebClient()) { 145 wc.Headers["Authorization"] = "Basic VmFyZGU6ZExsXjdeRUR5a0VkNDl1amYk"; 146 wc.Encoding = Encoding.UTF8; 147 148 var json = wc.DownloadString("https://affaldsviden.info/vardeapi.php?de-10-fraktioner=" + months); 149 150 result = Newtonsoft.Json.Linq.JToken.Parse(json); 151 152 Dynamicweb.Caching.Cache.Current.Set(cacheKey, result, new Dynamicweb.Caching.CacheItemPolicy { 153 AbsoluteExpiration = DateTimeOffset.UtcNow.AddMinutes(5.0) 154 }); 155 } 156 } 157 158 return result; 159 } 160 161 public static Newtonsoft.Json.Linq.JToken GetDe10FraktionerYear() { 162 var cacheKey = "AffaldsVidenFunc:GetDe10FraktionerYear()"; 163 var result = default(Newtonsoft.Json.Linq.JToken); 164 165 if (!Dynamicweb.Caching.Cache.Current.TryGet<Newtonsoft.Json.Linq.JToken>(cacheKey, out result)) { 166 using (var wc = new WebClient()) { 167 wc.Headers["Authorization"] = "Basic VmFyZGU6ZExsXjdeRUR5a0VkNDl1amYk"; 168 wc.Encoding = Encoding.UTF8; 169 170 var json = wc.DownloadString("https://affaldsviden.info/vardeapi.php?de-10-fraktioner-year"); 171 172 result = Newtonsoft.Json.Linq.JToken.Parse(json); 173 174 Dynamicweb.Caching.Cache.Current.Set(cacheKey, result, new Dynamicweb.Caching.CacheItemPolicy { 175 AbsoluteExpiration = DateTimeOffset.UtcNow.AddMinutes(5.0) 176 }); 177 } 178 } 179 180 return result; 181 } 182 } 183 } 184 @using System.Globalization 185 @{ 186 var paragraphId = GetInteger("ParagraphID"); 187 var pageId = GetInteger("ParagraphPageID"); 188 189 var show_laesmere = Pageview.Page.ID != 5516; 190 191 var total_pct = "0"; 192 var goto_url = "/Default.aspx?Id=5516"; 193 194 var jTkn = AffaldsVidenFunc.GetReelGenanvendelseYear(); 195 var pcts = (double)jTkn.OrderByDescending(o => (int)o["year"]).FirstOrDefault()["Genanvendelse"] * 100.0; 196 197 total_pct = pcts.ToString("N1", CultureInfo.CurrentCulture).Replace(",0", string.Empty); 198 } 199 200 <div class="col-sm-12"> 201 <div id="banner_@(paragraphId)"> 202 <div id="animation_container_@(paragraphId)" style="background-color: rgba(255, 255, 255, 1.00); width: 1170px; height: 300px"> 203 <canvas id="canvas_@(paragraphId)" width="1170" height="300" style="position: absolute; display: none; background-color: rgba(255, 255, 255, 1.00);"></canvas> 204 <div id="dom_overlay_container_@(paragraphId)" style="pointer-events: none; overflow: hidden; width: 1170px; height: 300px; position: absolute; left: 0; top: 0; display: none;"></div> 205 </div> 206 <div id="_preload_div_@(paragraphId)" style="position: absolute; top: 0; left: 0; display: inline-block; height: 300px; width: 1170px; text-align: center;"> 207 <span style="display: inline-block; height: 100%; vertical-align: middle;"></span> 208 <img src="/Files/Files/DINFORSYNING_DK/Affald/API-Banners/B2/images/_preloader.gif" style="vertical-align: middle; max-height: 100%" /> 209 </div> 210 </div> 211 </div> 212 213 <script src="https://cdn.jsdelivr.net/npm/createjs@1.0.1/builds/1.0.0/createjs.min.js"></script> 214 <script src="/Files/Files/DINFORSYNING_DK/Affald/API-Banners/B2/b2.js"></script> 215 <script type="text/javascript"> 216 $(function() { 217 function init() { 218 var $banner = document.getElementById('banner_@(paragraphId)'); 219 var $canvas = document.getElementById('canvas_@(paragraphId)'); 220 var $anim_container = document.getElementById('animation_container_@(paragraphId)'); 221 var $dom_overlay_container = document.getElementById('dom_overlay_container_@(paragraphId)'); 222 var $preloader = document.getElementById('_preload_div_@(paragraphId)'); 223 224 var comp = AdobeAn.getComposition('86D33FC331543D42B387A4ED0919BD5C'); 225 var lib = comp.getLibrary(); 226 var loader = new createjs.LoadQueue(false); 227 228 loader.addEventListener('fileload', function(evt) { 229 handleFileLoad(evt, comp); 230 }); 231 232 loader.addEventListener('complete', function(evt) { 233 handleComplete(evt, comp, $banner, $canvas, $anim_container, $dom_overlay_container, $preloader); 234 }); 235 236 loader.loadManifest(lib.properties.manifest); 237 } 238 239 function handleFileLoad(evt, comp) { 240 var images = comp.getImages(); 241 242 if (evt && (evt.item.type == 'image')) { 243 images[evt.item.id] = evt.result; 244 } 245 } 246 247 function handleComplete(evt, comp, $banner, $canvas, $anim_container, $dom_overlay_container, $preloader) { 248 var lib = comp.getLibrary(); 249 var ss = comp.getSpriteSheet(); 250 var queue = evt.target; 251 var ssMetadata = lib.ssMetadata; 252 253 for (var i = 0; i < ssMetadata.length; i++) { 254 ss[ssMetadata[i].name] = new createjs.SpriteSheet({ images: [queue.getResult(ssMetadata[i].name)], frames: ssMetadata[i].frames }); 255 } 256 257 $preloader.style.display = 'none'; 258 $canvas.style.display = 'block'; 259 260 var exportRoot = new lib.b2(); 261 var stage = new lib.Stage($canvas); 262 263 exportRoot.bannerInit = handleBannerInit; 264 265 stage.enableMouseOver(); 266 comp.setExportRoot(exportRoot); 267 268 function fnStartAnimation() { 269 stage.addChild(exportRoot); 270 createjs.Ticker.framerate = lib.properties.fps; 271 createjs.Ticker.addEventListener('tick', stage); 272 } 273 274 AdobeAn.makeResponsive(stage, true, 'width', false, 1, [$canvas, $preloader, $anim_container, $dom_overlay_container], $banner); 275 AdobeAn.compositionLoaded(lib.properties.id); 276 fnStartAnimation(); 277 } 278 279 init(); 280 281 /*-----------------------------------------------------------------------------------*/ 282 function handleBannerInit(lib) { 283 var show_laesmere = @(show_laesmere ? "true" : "false"); 284 var $this = this; 285 286 $this.stop(); 287 288 function createCounter(target, value) { 289 var values = value.split('').reduceRight(function(acc, cur) { 290 if (cur == '.' || cur == ',') 291 acc.push({ v: cur }); 292 else 293 acc.push({ v: parseInt(cur) }); 294 295 return acc; 296 }, []).reverse(); 297 298 var mc = new createjs.MovieClip(); 299 300 values.forEach(function(item, i) { 301 item.mc = mc.addChild(new (item.v == '.' ? lib.cntdot : item.v == ',' ? lib.cntcomma : lib.cnt)()); 302 303 if (i > 0) { 304 var prev = values[i - 1].mc; 305 306 item.mc.x = (prev.x + prev.getBounds().width) - 6; 307 } 308 }); 309 310 target.addChild(mc); 311 312 return { 313 mc: mc, 314 animate: function() { 315 return Promise.all(values.filter(function(o) { 316 return !(o.v == '.' || o.v == ','); 317 }).map(function(o, i) { 318 var step = 119.2; 319 var goTo = o.v; 320 321 if ((goTo <= 0 || goTo > 10) && i > 0) 322 goTo = 10; 323 324 var destY = o.mc.numbers.regY - (step * goTo); 325 326 return new Promise(function(resolve) { 327 createjs.Tween.get(o.mc.numbers, { override: true }).to({ y: destY }, 2500, createjs.Ease.quartInOut).call(resolve); 328 }); 329 })); 330 } 331 }; 332 } 333 334 function step_1() { 335 $this.ct_laesmere.x = 0 - $this.ct_laesmere.getBounds().width; 336 $this.ct_laesmere.visible = false; 337 338 var cnt = createCounter($this, '@(total_pct)'); 339 340 $this.ct_cnt = cnt.mc; 341 $this.ct_text_vi.setTransform(); 342 $this.ct_text_percent.setTransform(); 343 344 var bounds_cnt = $this.ct_cnt.getTransformedBounds(); 345 var bounds_text_vi = $this.ct_text_vi.getTransformedBounds(); 346 var bounds_text_percent = $this.ct_text_percent.getTransformedBounds(); 347 348 // scale 349 while ((bounds_text_vi.width + bounds_cnt.width + bounds_text_percent.width) > (lib.properties.width - 80)) { 350 $this.ct_text_vi.scale -= 0.1; 351 $this.ct_text_percent.scale -= 0.1; 352 353 bounds_text_vi = $this.ct_text_vi.getTransformedBounds(); 354 bounds_text_percent = $this.ct_text_percent.getTransformedBounds(); 355 } 356 357 // y 358 var top = 67; 359 $this.ct_cnt.y = top; 360 $this.ct_text_vi.y = top + ($this.ct_text_vi.scale < 1 ? (Math.floor(bounds_cnt.height) - Math.floor(bounds_text_vi.height)) * $this.ct_text_vi.scale : 0); 361 $this.ct_text_percent.y = top + ($this.ct_text_percent.scale < 1 ? (Math.floor(bounds_cnt.height) - Math.floor(bounds_text_percent.height)) * $this.ct_text_percent.scale : 0); 362 363 // x 364 var left = (lib.properties.width - (bounds_text_vi.width + bounds_cnt.width + bounds_text_percent.width)) * 0.5; 365 $this.ct_cnt.x = left + bounds_text_vi.width; 366 $this.ct_text_vi.x = left; 367 $this.ct_text_percent.x = left + bounds_text_vi.width + bounds_cnt.width; 368 369 return (new Promise(function(resolve) { 370 setTimeout(resolve, 800); 371 })).then(function() { 372 return Promise.all([ 373 cnt.animate(), 374 new Promise(function(resolve) { 375 createjs.Tween.get($this.ct_spinner, { override: true }).to({ rotation: $this.ct_spinner.rotation + 180 }, 2500, createjs.Ease.quartInOut).call(resolve); 376 }) 377 ]); 378 }); 379 } 380 381 function step_2() { 382 return (new Promise(function(resolve) { 383 setTimeout(resolve, 800); 384 })).then(function() { 385 show_laesmere && ($this.ct_laesmere.visible = true); 386 387 return Promise.all([ 388 show_laesmere && (new Promise(function(resolve) { 389 createjs.Tween.get($this.ct_laesmere, { override: true }).to({ x: 486.5 }, 2500, createjs.Ease.bounceOut).call(resolve); 390 })), 391 new Promise(function(resolve) { 392 createjs.Tween.get($this.ct_spinner, { override: true }).to({ rotation: $this.ct_spinner.rotation + 180 }, 2500, createjs.Ease.bounceOut).call(resolve); 393 }) 394 ].filter(Boolean)); 395 }).then(function() { 396 show_laesmere && $this.ct_laesmere.on('click', function() { 397 location.href = '@(goto_url)'; 398 }); 399 }); 400 } 401 402 step_1().then(function() { 403 return step_2(); 404 }); 405 } 406 }); 407 </script>

Reel genanvendelse

Hvert år håndterer DIN Forsyning cirka 53.500 tons affald. Det er enten hentet af skraldemændene ude hos kunderne, eller afleveret af kunderne til os via vores miljøstationer og genbrugspladser.

I de mange tons er der både noget, som kan genanvendes og noget, som ikke kan. Al restaffald bliver fx kørt til et forbrændingsanlæg, hvor det bliver til strøm og fjernvarme (men det tæller ikke som genanvendelse). Andet som fx madaffald og metal kan genanvendes næsten 100 %.

Error executing template "/Designs/Paragraph/Chart_B2.cshtml"
System.Net.WebException: The remote server returned an error: (404) Not Found.
   at System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request)
   at System.Net.WebClient.DownloadString(Uri address)
   at CompiledRazorTemplates.Dynamic.RazorEngine_c6bb5a98fd88493da2cde259fbb12127.AffaldsVidenFunc.GetReelGenanvendelse(Int32 months) in C:\home\site\wwwroot\DinForsyning\Files\Templates\Designs\Paragraph\Chart_B2.cshtml:line 104
   at CompiledRazorTemplates.Dynamic.RazorEngine_c6bb5a98fd88493da2cde259fbb12127.Execute() in C:\home\site\wwwroot\DinForsyning\Files\Templates\Designs\Paragraph\Chart_B2.cshtml:line 188
   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 @using System.Net 2 @using System.Text 3 @functions{ 4 public class AffaldsVidenFunc { 5 // private static readonly string API_KEY = "Hdj!^$Pn9Dl*uXTeZ&7fZEmdPG9s&Yg4DQMy13yw"; 6 // 7 // public static Newtonsoft.Json.Linq.JToken GetHKode(string kommune, string hkode) { 8 // var cacheKey = "AffaldsVidenFunc:GetHKode(" + kommune + ", " + hkode + ")"; 9 // var result = default(Newtonsoft.Json.Linq.JToken); 10 // 11 // if (!Dynamicweb.Caching.Cache.Current.TryGet<Newtonsoft.Json.Linq.JToken>(cacheKey, out result)) { 12 // using (var wc = new WebClient()) { 13 // wc.Headers["X-API-KEY"] = API_KEY; 14 // wc.Encoding = Encoding.UTF8; 15 // 16 // var json = wc.DownloadString("https://api.affaldsviden.info/kommune-" + kommune + "/hkode-" + hkode); 17 // 18 // result = Newtonsoft.Json.Linq.JToken.Parse(json); 19 // 20 // Dynamicweb.Caching.Cache.Current.Set(cacheKey, result, new Dynamicweb.Caching.CacheItemPolicy { 21 // AbsoluteExpiration = DateTimeOffset.UtcNow.AddMinutes(5.0) 22 // }); 23 // } 24 // } 25 // 26 // return result; 27 // } 28 // 29 // public static Newtonsoft.Json.Linq.JToken GetGenbrugsprocent(string kommune) { 30 // var cacheKey = "AffaldsVidenFunc:GetGenbrugsprocent(" + kommune + ")"; 31 // var result = default(Newtonsoft.Json.Linq.JToken); 32 // 33 // if (!Dynamicweb.Caching.Cache.Current.TryGet<Newtonsoft.Json.Linq.JToken>(cacheKey, out result)) { 34 // using (var wc = new WebClient()) { 35 // wc.Headers["X-API-KEY"] = API_KEY; 36 // wc.Encoding = Encoding.UTF8; 37 // 38 // var json = wc.DownloadString("https://api.affaldsviden.info/kommune-" + kommune + "/genbrugsprocent"); 39 // 40 // result = Newtonsoft.Json.Linq.JToken.Parse(json); 41 // 42 // Dynamicweb.Caching.Cache.Current.Set(cacheKey, result, new Dynamicweb.Caching.CacheItemPolicy { 43 // AbsoluteExpiration = DateTimeOffset.UtcNow.AddMinutes(5.0) 44 // }); 45 // } 46 // } 47 // 48 // return result; 49 // } 50 // 51 // public static Newtonsoft.Json.Linq.JToken GetMadaffaldTilEl(string kommune) { 52 // var cacheKey = "AffaldsVidenFunc:GetMadaffaldTilEl(" + kommune + ")"; 53 // var result = default(Newtonsoft.Json.Linq.JToken); 54 // 55 // if (!Dynamicweb.Caching.Cache.Current.TryGet<Newtonsoft.Json.Linq.JToken>(cacheKey, out result)) { 56 // using (var wc = new WebClient()) { 57 // wc.Headers["X-API-KEY"] = API_KEY; 58 // wc.Encoding = Encoding.UTF8; 59 // 60 // var json = wc.DownloadString("https://api.affaldsviden.info/kommune-" + kommune + "/madaffald-til-el"); 61 // 62 // result = Newtonsoft.Json.Linq.JToken.Parse(json); 63 // 64 // Dynamicweb.Caching.Cache.Current.Set(cacheKey, result, new Dynamicweb.Caching.CacheItemPolicy { 65 // AbsoluteExpiration = DateTimeOffset.UtcNow.AddMinutes(5.0) 66 // }); 67 // } 68 // } 69 // 70 // return result; 71 // } 72 73 public static Newtonsoft.Json.Linq.JToken GetMadaffaldTilEl(int months) { 74 var cacheKey = "AffaldsVidenFunc:GetMadaffaldTilEl(" + months + ")"; 75 var result = default(Newtonsoft.Json.Linq.JToken); 76 77 if (!Dynamicweb.Caching.Cache.Current.TryGet<Newtonsoft.Json.Linq.JToken>(cacheKey, out result)) { 78 using (var wc = new WebClient()) { 79 wc.Headers["Authorization"] = "Basic VmFyZGU6ZExsXjdeRUR5a0VkNDl1amYk"; 80 wc.Encoding = Encoding.UTF8; 81 82 var json = wc.DownloadString("https://affaldsviden.info/vardeapi.php?madaffald-til-el=" + months); 83 84 result = Newtonsoft.Json.Linq.JToken.Parse(json); 85 86 Dynamicweb.Caching.Cache.Current.Set(cacheKey, result, new Dynamicweb.Caching.CacheItemPolicy { 87 AbsoluteExpiration = DateTimeOffset.UtcNow.AddMinutes(5.0) 88 }); 89 } 90 } 91 92 return result; 93 } 94 95 public static Newtonsoft.Json.Linq.JToken GetReelGenanvendelse(int months) { 96 var cacheKey = "AffaldsVidenFunc:GetReelGenanvendelse(" + months + ")"; 97 var result = default(Newtonsoft.Json.Linq.JToken); 98 99 if (!Dynamicweb.Caching.Cache.Current.TryGet<Newtonsoft.Json.Linq.JToken>(cacheKey, out result)) { 100 using (var wc = new WebClient()) { 101 wc.Headers["Authorization"] = "Basic VmFyZGU6ZExsXjdeRUR5a0VkNDl1amYk"; 102 wc.Encoding = Encoding.UTF8; 103 104 var json = wc.DownloadString("https://affaldsviden.info/vardeapi.php?reel-genanvendelse=" + months); 105 106 result = Newtonsoft.Json.Linq.JToken.Parse(json); 107 108 Dynamicweb.Caching.Cache.Current.Set(cacheKey, result, new Dynamicweb.Caching.CacheItemPolicy { 109 AbsoluteExpiration = DateTimeOffset.UtcNow.AddMinutes(60.0 * 12) 110 }); 111 } 112 } 113 114 return result; 115 } 116 117 public static Newtonsoft.Json.Linq.JToken GetReelGenanvendelseYear() { 118 var cacheKey = "AffaldsVidenFunc:GetReelGenanvendelseYear()"; 119 var result = default(Newtonsoft.Json.Linq.JToken); 120 121 if (!Dynamicweb.Caching.Cache.Current.TryGet<Newtonsoft.Json.Linq.JToken>(cacheKey, out result)) { 122 using (var wc = new WebClient()) { 123 wc.Headers["Authorization"] = "Basic VmFyZGU6ZExsXjdeRUR5a0VkNDl1amYk"; 124 wc.Encoding = Encoding.UTF8; 125 126 var json = wc.DownloadString("https://affaldsviden.info/vardeapi.php?reel-genanvendelse-year"); 127 128 result = Newtonsoft.Json.Linq.JToken.Parse(json); 129 130 Dynamicweb.Caching.Cache.Current.Set(cacheKey, result, new Dynamicweb.Caching.CacheItemPolicy { 131 AbsoluteExpiration = DateTimeOffset.UtcNow.AddMinutes(60.0 * 12) 132 }); 133 } 134 } 135 136 return result; 137 } 138 139 public static Newtonsoft.Json.Linq.JToken GetDe10Fraktioner(int months) { 140 var cacheKey = "AffaldsVidenFunc:GetDe10Fraktioner(" + months + ")"; 141 var result = default(Newtonsoft.Json.Linq.JToken); 142 143 if (!Dynamicweb.Caching.Cache.Current.TryGet<Newtonsoft.Json.Linq.JToken>(cacheKey, out result)) { 144 using (var wc = new WebClient()) { 145 wc.Headers["Authorization"] = "Basic VmFyZGU6ZExsXjdeRUR5a0VkNDl1amYk"; 146 wc.Encoding = Encoding.UTF8; 147 148 var json = wc.DownloadString("https://affaldsviden.info/vardeapi.php?de-10-fraktioner=" + months); 149 150 result = Newtonsoft.Json.Linq.JToken.Parse(json); 151 152 Dynamicweb.Caching.Cache.Current.Set(cacheKey, result, new Dynamicweb.Caching.CacheItemPolicy { 153 AbsoluteExpiration = DateTimeOffset.UtcNow.AddMinutes(5.0) 154 }); 155 } 156 } 157 158 return result; 159 } 160 161 public static Newtonsoft.Json.Linq.JToken GetDe10FraktionerYear() { 162 var cacheKey = "AffaldsVidenFunc:GetDe10FraktionerYear()"; 163 var result = default(Newtonsoft.Json.Linq.JToken); 164 165 if (!Dynamicweb.Caching.Cache.Current.TryGet<Newtonsoft.Json.Linq.JToken>(cacheKey, out result)) { 166 using (var wc = new WebClient()) { 167 wc.Headers["Authorization"] = "Basic VmFyZGU6ZExsXjdeRUR5a0VkNDl1amYk"; 168 wc.Encoding = Encoding.UTF8; 169 170 var json = wc.DownloadString("https://affaldsviden.info/vardeapi.php?de-10-fraktioner-year"); 171 172 result = Newtonsoft.Json.Linq.JToken.Parse(json); 173 174 Dynamicweb.Caching.Cache.Current.Set(cacheKey, result, new Dynamicweb.Caching.CacheItemPolicy { 175 AbsoluteExpiration = DateTimeOffset.UtcNow.AddMinutes(5.0) 176 }); 177 } 178 } 179 180 return result; 181 } 182 } 183 } 184 @{ 185 var paragraphId = GetInteger("ParagraphID"); 186 var pageId = GetInteger("ParagraphPageID"); 187 188 var jTkn = AffaldsVidenFunc.GetReelGenanvendelse(12); 189 var pcts = jTkn?.Select(o => { 190 var pct = (double)o["Genanvendelse"] * 100.0; 191 192 return new { 193 DT = new DateTime(int.Parse((string)o["year"]), int.Parse((string)o["month"]), 1), 194 Percent = pct > 0.0 ? (double?)pct : (double?)null 195 }; 196 }).OrderBy(o => o.DT).ToArray(); 197 } 198 199 <div class="col-sm-12"> 200 <div id="chart_@(paragraphId)" style="margin-bottom: 20px;"></div> 201 </div> 202 203 <style type="text/css"> 204 #chart_@(paragraphId) .highcharts-color-0 { fill: #2a7927; stroke: #2a7927; } 205 </style> 206 <script src="https://cdn.jsdelivr.net/npm/highcharts@8.2.2/highcharts.js"></script> 207 <script type="text/javascript"> 208 $(function() { 209 var chartOpt = { 210 chart: { 211 type : 'column', 212 spacing : [30, 20, 30, 20], 213 borderWidth : 1, 214 borderColor : '#2d3587', 215 height : 500, 216 style : { 217 fontFamily : "'MuseoSans-300', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'" 218 }, 219 }, 220 221 credits: { 222 enabled: false 223 }, 224 225 legend: { 226 enabled: false 227 }, 228 229 title: { 230 text : 'Genanvendelse af affald fra Varde Kommune', 231 margin : 20, 232 233 style: { 234 color : '#2d3587', 235 fontSize : '20px', 236 fontWeight : 'bold' 237 } 238 }, 239 240 plotOptions: { 241 series: { 242 dataLabels: { 243 enabled : true, 244 useHTML : true, 245 format : '{point.y:.2f}%', 246 crop : false, 247 overflow : 'allow', 248 249 style: { 250 color : '#2d3587', 251 fontSize : '12px', 252 fontWeight : 'bold' 253 } 254 } 255 } 256 }, 257 258 tooltip: { 259 enabled : false, 260 valueDecimals : 3, 261 shared : true, 262 useHTML : true, 263 backgroundColor : '#f7f7f7', 264 headerFormat : '<span style="font-size: 10px">{point.key}</span><table>', 265 pointFormat : '<tr><td><i class="fa fa-circle" style="color: {point.color};" aria-hidden="true"></i> {series.name}: </td><td style="text-align: right"><b>{point.y}%</b></td></tr>', 266 footerFormat : '</table>' 267 }, 268 269 xAxis: { 270 crosshair : true, 271 categories : @(Newtonsoft.Json.JsonConvert.SerializeObject(pcts?.Select(o => o.DT.ToString("MMM yyyy")))) 272 }, 273 274 yAxis: { 275 labels: { 276 format: '{value}%' 277 }, 278 title: { 279 text: null 280 } 281 }, 282 283 series: [{ 284 data: @(Newtonsoft.Json.JsonConvert.SerializeObject(pcts?.Select(o => o.Percent))) 285 }] 286 }; 287 288 var chart = Highcharts.chart('chart_@(paragraphId)', chartOpt); 289 }); 290 </script>

Denne graf viser, hvor meget af affaldet, hvor meget der indsamles til genanvendelse. Det er vigtigt for os at hjælpe kunderne med at få genanvendt så meget som overhovedet muligt. Økonomien spiller en rolle, da det er dyrt at få brændt affald af, men det miljømæssige regnskab spiller mindst en lige så stor rolle, hvis ikke en større. Jo mere vores kunder kan genanvende, jo mindre ressourcer skal der fx trækkes ud miner og olieboringer.

Små sving skyldes afsætning

Genanvendelsesprocenten varierer lidt hver måned. Det er fordi AFLD, som står for efterbehandlingen af affaldet, søger efter de bedste tidspunkter at afsætte affaldet på. Så de kan godt lagre noget affald i nogle måneder, for at afsætte det, når prisen er bedst. Derfor bør tallet per måned tages med de forbehold.

Ikke at forveksle med genanvendelsesprocenten

EU har stillet krav om, at mere af vores indsamlede husholdningsaffald skal genanvendes. Derfor har man opfundet et begreb, som kaldes ”genanvendelsesprocenten”, der dækker over syv fokusfraktioner (madaffald, papir-, pap-, glas-, træ-, plast- og metalaffald).

Den ovenstående graf viser genanvendelsen af al indsamlet affald – og dermed også flere affaldstyper end de syv, som vi bliver målt på igennem Miljøstyrelsens Affaldsdatasystem.

Ovenstående graf viser:

 

Madaffald + papir + pap + metal + glas + plast + træ + haveaffald + farligt affald + tekstiler + elektronik + batterier + mad & drikkekartoner    

 =  reel genanvendelse i procent
restaffald + forbrændingsegnet affald + storskald + ovennævnte i alt    

 

 

Kom med input

Vi vil gerne gøre denne side endnu mere relevant for dig. Har du nogle data, du mangler, så skriv til webmaster@dinforsyning.dk. Så kan vi tage dine input med videre og udvikle siden.

Vent venligst...