From ae3b61c6fb6bafc2fa158453e216e2691e1a016a Mon Sep 17 00:00:00 2001 From: Douwe Ravers Date: Wed, 12 Aug 2026 13:18:16 +0200 Subject: [PATCH] Used AI to restructure the razor pages into distinct nodes. --- Models/PipelineStep.cs | 8 + Pages/Home.razor | 294 +++--------------------- Pages/Nodes/BatterySimulationNode.razor | 105 ++++++++- Pages/Nodes/CostCalculationNode.razor | 181 ++++++++++++++- Pages/Nodes/FluviusUploadNode.razor | 104 ++++++++- 5 files changed, 423 insertions(+), 269 deletions(-) create mode 100644 Models/PipelineStep.cs diff --git a/Models/PipelineStep.cs b/Models/PipelineStep.cs new file mode 100644 index 0000000..81abebf --- /dev/null +++ b/Models/PipelineStep.cs @@ -0,0 +1,8 @@ +namespace BattSim.Models; + +public struct PipelineStep +{ + public bool Expanded; + public bool Completed; + public bool isProcessing; +} diff --git a/Pages/Home.razor b/Pages/Home.razor index b83f907..16d2f27 100644 --- a/Pages/Home.razor +++ b/Pages/Home.razor @@ -3,6 +3,7 @@ @using Radzen.Blazor @using BattSim.Models @using BattSim.Services +@using BattSim.Pages.Nodes Wattif @@ -13,258 +14,33 @@
- -
-
-
1
-
Fluvius Data
-
-
-
-
-

Upload je Fluvius kwartierdata om te beginnen

- -
-
- - - @if (FluviusDataRaw.Length > 0 && !StepData[0].isProcessing) - { -

@_uploadedFileName

- } -
-
- - @if (StepData[0].Completed) - { -
- Data succesvol ingeladen en verwerkt! -
- } - @if (_uploadError != null) - { -
- @_uploadError -
- } - -
-

Tip: Download een volledig jaar aan kwartierdata voor de meest accurate resultaten.

-
-
-
-
- - -
-
-
2
-
Batterij Simulatie
-
-
-
-
-

Test verschillende batterijconfiguraties

- - @if (FluviusDataRaw.Length == 0) - { -
-

Upload eerst je Fluvius data (stap 1) om deze stap te kunnen uitvoeren.

-
- } - else - { -
-
-
- - -
-
- - -
-
-

- Efficiëntie is het percentage van opgeslagen energie dat terug kan worden gebruikt. -

-
- -
- -
- - @if (StepData[1].Completed) - { -
- Simulatie voltooid! @SimulationData.Length kwartieren gesimuleerd. -
- } - } -
-
-
- - -
-
-
3
-
Kosten Berekenen
-
-
-
-
-

Vergelijk kosten met en zonder batterij

- - -
-

- Contractuele Kosten -

-
-
- - -
-
- - -
-
- - -
- Vaste Kosten -
-
- -
- - -
-
- - -
-
Heffingen Groene Stroom
-
-
- - -
-
- - -
-
-
- - -
-
Net- en distributiekosten
-
-
- - -
-
- - -
-
-
- - -
-
Heffingen en Toeslagen
-
-
- - -
-
- - -
-
-
-
-
-
- - -
-

- Energiekosten -

-
-
- - -
-
- - -
-
-
- -
- -
- - @if (StepData[2].Completed) - { -
-

Originele kosten: €@normalCost.ToString("0.00")

-

Gesimuleerde kosten: €@simulatedCost.ToString("0.00")

-

Besparing: €@((normalCost - simulatedCost).ToString("0.00"))

- @if (normalCost > 0) - { -

Besparingspercent: @(((normalCost - simulatedCost) / normalCost * 100).ToString("0.00"))%

- } -
- } -
-
-
+ + + + + +
@@ -338,12 +114,6 @@ double normalCost = 0.0; double simulatedCost = 0.0; - struct PipelineStep{ - public bool Expanded; - public bool Completed; - public bool isProcessing; - } - PipelineStep[] StepData = [ new PipelineStep(), // Step 1 new PipelineStep(), // Step 2 @@ -358,14 +128,6 @@ double BatteryCapacity = 7.5; double Efficiency = 90; - private string GetPipelineStepClasses(int step){ - var classes = new List(); - if (StepData[step].Expanded) classes.Add("expanded"); - if (StepData[step].Completed) classes.Add("completed"); - if (StepData[step].isProcessing) classes.Add("running"); - return string.Join(" ", classes); - } - private string GetTimeButtonClass(string period) { var baseClass = "time-toggle-button"; diff --git a/Pages/Nodes/BatterySimulationNode.razor b/Pages/Nodes/BatterySimulationNode.razor index 0bbd32e..adb02c7 100644 --- a/Pages/Nodes/BatterySimulationNode.razor +++ b/Pages/Nodes/BatterySimulationNode.razor @@ -1 +1,104 @@ - \ No newline at end of file + @using Radzen +@using Radzen.Blazor +@using BattSim.Models +@using BattSim.Services + +
+
+
2
+
Batterij Simulatie
+
+
+
+
+

Test verschillende batterijconfiguraties

+ + @if (FluviusDataRaw.Length == 0) + { +
+

Upload eerst je Fluvius data (stap 1) om deze stap te kunnen uitvoeren.

+
+ } + else + { +
+
+
+ + +
+
+ + +
+
+

+ Efficiëntie is het percentage van opgeslagen energie dat terug kan worden gebruikt. +

+
+ +
+ +
+ + @if (StepData.Completed) + { +
+ Simulatie voltooid! @SimulationData.Length kwartieren gesimuleerd. +
+ } + } +
+
+
+ +@code { + [Parameter] + public EnergyData[] FluviusDataRaw { get; set; } = []; + + [Parameter] + public EnergyData[] SimulationData { get; set; } = []; + + [Parameter] + public PipelineStep StepData { get; set; } + + [Parameter] + public double BatteryCapacity { get; set; } = 7.5; + + [Parameter] + public double Efficiency { get; set; } = 90; + + [Parameter] + public EventCallback OnSimulateBatteryCallback { get; set; } + + [Parameter] + public EventCallback OnToggleBoxCallback { get; set; } + + private string GetPipelineStepClasses(PipelineStep step) + { + var classes = new List(); + if (step.Expanded) classes.Add("expanded"); + if (step.Completed) classes.Add("completed"); + if (step.isProcessing) classes.Add("running"); + return string.Join(" ", classes); + } + + private void SimulateBattery() + { + OnSimulateBatteryCallback.InvokeAsync(); + } + + private void ToggleBox() + { + OnToggleBoxCallback.InvokeAsync(); + } +} \ No newline at end of file diff --git a/Pages/Nodes/CostCalculationNode.razor b/Pages/Nodes/CostCalculationNode.razor index 0136be3..9bf8711 100644 --- a/Pages/Nodes/CostCalculationNode.razor +++ b/Pages/Nodes/CostCalculationNode.razor @@ -1 +1,180 @@ - \ No newline at end of file + @using Radzen +@using Radzen.Blazor +@using BattSim.Models +@using BattSim.Services + +
+
+
3
+
Kosten Berekenen
+
+
+
+
+

Vergelijk kosten met en zonder batterij

+ + +
+

+ Contractuele Kosten +

+
+
+ + +
+
+ + +
+
+ + +
+ Vaste Kosten +
+
+
+ + +
+
+ + +
+
Heffingen Groene Stroom
+
+
+ + +
+
+ + +
+
+
+ + +
+
Net- en distributiekosten
+
+
+ + +
+
+ + +
+
+
+ + +
+
Heffingen en Toeslagen
+
+
+ + +
+
+ + +
+
+
+
+
+
+ + +
+

+ Energiekosten +

+
+
+ + +
+
+ + +
+
+
+ +
+ +
+ + @if (StepData.Completed) + { +
+

Originele kosten: €@NormalCost.ToString("0.00")

+

Gesimuleerde kosten: €@SimulatedCost.ToString("0.00")

+

Besparing: €@((NormalCost - SimulatedCost).ToString("0.00"))

+ @if (NormalCost > 0) + { +

Besparingspercent: @(((NormalCost - SimulatedCost) / NormalCost * 100).ToString("0.00"))%

+ } +
+ } +
+
+
+ +@code { + [Parameter] + public EnergyData[] SimulationData { get; set; } = []; + + [Parameter] + public EnergyData[] FluviusDataRaw { get; set; } = []; + + [Parameter] + public PipelineStep StepData { get; set; } + + [Parameter] + public EnergyCostCalculator Calculator { get; set; } = new(); + + [Parameter] + public double NormalCost { get; set; } = 0.0; + + [Parameter] + public double SimulatedCost { get; set; } = 0.0; + + [Parameter] + public EventCallback OnCalculateCallback { get; set; } + + [Parameter] + public EventCallback OnToggleBoxCallback { get; set; } + + private string GetPipelineStepClasses(PipelineStep step) + { + var classes = new List(); + if (step.Expanded) classes.Add("expanded"); + if (step.Completed) classes.Add("completed"); + if (step.isProcessing) classes.Add("running"); + return string.Join(" ", classes); + } + + private void Calculate() + { + OnCalculateCallback.InvokeAsync(); + } + + private void ToggleBox() + { + OnToggleBoxCallback.InvokeAsync(); + } +} \ No newline at end of file diff --git a/Pages/Nodes/FluviusUploadNode.razor b/Pages/Nodes/FluviusUploadNode.razor index 7dcdd08..6674d78 100644 --- a/Pages/Nodes/FluviusUploadNode.razor +++ b/Pages/Nodes/FluviusUploadNode.razor @@ -1 +1,103 @@ - \ No newline at end of file + @using Radzen +@using Radzen.Blazor +@using BattSim.Models +@using BattSim.Services + +
+
+
1
+
Fluvius Data
+
+
+
+
+

Upload je Fluvius kwartierdata om te beginnen

+ +
+
+ + + @if (FluviusDataRaw.Length > 0 && !StepData.isProcessing) + { +

@UploadedFileName

+ } +
+
+ + @if (StepData.Completed) + { +
+ Data succesvol ingeladen en verwerkt! +
+ } + @if (UploadError != null) + { +
+ @UploadError +
+ } + +
+

Tip: Download een volledig jaar aan kwartierdata voor de meest accurate resultaten.

+
+
+
+
+ +@code { + [Parameter] + public EnergyData[] FluviusDataRaw { get; set; } = []; + + [Parameter] + public PipelineStep StepData { get; set; } + + [Parameter] + public string UploadedFileName { get; set; } = string.Empty; + + [Parameter] + public string? UploadError { get; set; } + + [Parameter] + public EventCallback OnFileUploadedCallback { get; set; } + + [Parameter] + public EventCallback OnToggleBoxCallback { get; set; } + + private string GetPipelineStepClasses(PipelineStep step) + { + var classes = new List(); + if (step.Expanded) classes.Add("expanded"); + if (step.Completed) classes.Add("completed"); + if (step.isProcessing) classes.Add("running"); + return string.Join(" ", classes); + } + + private async Task OnFileUploaded(InputFileChangeEventArgs e) + { + await OnFileUploadedCallback.InvokeAsync(e); + } + + private void ToggleBox() + { + OnToggleBoxCallback.InvokeAsync(); + } +} \ No newline at end of file