From 030d92c06869dbd30f7af06282450fe61a260994 Mon Sep 17 00:00:00 2001 From: Rick Butterfield Date: Thu, 25 Apr 2024 10:17:38 +0100 Subject: [PATCH] Order A+ carbon rating correctly --- .../Controllers/SustainabilityController.cs | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Community.Sustainability/Controllers/SustainabilityController.cs b/src/Umbraco.Community.Sustainability/Controllers/SustainabilityController.cs index 49ac7ae..a2d1683 100644 --- a/src/Umbraco.Community.Sustainability/Controllers/SustainabilityController.cs +++ b/src/Umbraco.Community.Sustainability/Controllers/SustainabilityController.cs @@ -1,5 +1,7 @@ +using System.Diagnostics; using System.Text.Json; using Microsoft.AspNetCore.Mvc; +using Microsoft.CodeAnalysis.Operations; using Umbraco.Cms.Core; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Models.PublishedContent; @@ -39,7 +41,7 @@ public async Task GetOverviewData(int pageNumber = 1, int pageSiz switch (orderBy) { case nameof(PageMetric.CarbonRating): - filter = x => x.CarbonRating; + filter = x => GetCarbonRatingOrder(x.CarbonRating); break; case nameof(PageMetric.RequestDate): filter = x => x.RequestDate; @@ -126,5 +128,28 @@ public async Task SavePageData([FromQuery] int pageId, [FromBody] await _pageMetricService.AddPageMetric(pageMetric); return Ok(true); } + + private int GetCarbonRatingOrder(string carbonRating) + { + switch (carbonRating) + { + case "A+": + return 1; + case "A": + return 2; + case "B": + return 3; + case "C": + return 4; + case "D": + return 5; + case "E": + return 6; + case "F": + return 7; + default: + return 7; + } + } } }