From d21c49d48653849132169080bd2a7b3aedf22f9e Mon Sep 17 00:00:00 2001 From: Claudio Schaad Date: Mon, 5 May 2025 10:18:03 +0200 Subject: [PATCH] Add mandator dropdown --- Accounting.sln.DotSettings.user | 1 + .../Interfaces/ISettingsService.cs | 2 ++ Schaad.Accounting.Services/SettingsService.cs | 7 +++++++ .../Components/MyHeader.razor | 8 +++++++- .../Components/MyHeader.razor.cs | 20 +++++++++++++++---- 5 files changed, 33 insertions(+), 5 deletions(-) diff --git a/Accounting.sln.DotSettings.user b/Accounting.sln.DotSettings.user index a4dfa8a..96dd07f 100644 --- a/Accounting.sln.DotSettings.user +++ b/Accounting.sln.DotSettings.user @@ -1,4 +1,5 @@  ForceIncluded ForceIncluded + ForceIncluded ForceIncluded \ No newline at end of file diff --git a/Schaad.Accounting.Common/Interfaces/ISettingsService.cs b/Schaad.Accounting.Common/Interfaces/ISettingsService.cs index 87f6219..150448d 100644 --- a/Schaad.Accounting.Common/Interfaces/ISettingsService.cs +++ b/Schaad.Accounting.Common/Interfaces/ISettingsService.cs @@ -1,3 +1,4 @@ +using System.Collections.Generic; using Schaad.Accounting.Datasets; namespace Schaad.Accounting.Interfaces @@ -11,6 +12,7 @@ namespace Schaad.Accounting.Interfaces bool TrySetYear(int year); string GetMandator(); + IReadOnlyList GetMandators(int year); void SetMandator(string mandator); diff --git a/Schaad.Accounting.Services/SettingsService.cs b/Schaad.Accounting.Services/SettingsService.cs index 947beb2..920a675 100644 --- a/Schaad.Accounting.Services/SettingsService.cs +++ b/Schaad.Accounting.Services/SettingsService.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.IO; using System.Linq; using Schaad.Accounting.Datasets; @@ -43,6 +44,12 @@ namespace Schaad.Accounting.Services { return mandator; } + + public IReadOnlyList GetMandators(int year) + { + var path = Path.Combine(GetSettings().DataPath, year.ToString()); + return Directory.GetDirectories(path).Select(Path.GetFileName).Where(d => !d.Equals("Backup", StringComparison.InvariantCultureIgnoreCase)).ToList(); + } public void SetMandator(string mandator) { diff --git a/Schaad.Accounting.UI/Components/MyHeader.razor b/Schaad.Accounting.UI/Components/MyHeader.razor index 7382bd9..d41f2e6 100644 --- a/Schaad.Accounting.UI/Components/MyHeader.razor +++ b/Schaad.Accounting.UI/Components/MyHeader.razor @@ -8,8 +8,14 @@ AccountingNext OptionText="@(i => i.ToString())" OptionValue="@(i => i.ToString())" @bind-SelectedOption="@selectedYear" - ValueChanged="YearChanged" /> + ValueChanged="YearChanged"/> + @code { diff --git a/Schaad.Accounting.UI/Components/MyHeader.razor.cs b/Schaad.Accounting.UI/Components/MyHeader.razor.cs index 1ed53da..f3258f7 100644 --- a/Schaad.Accounting.UI/Components/MyHeader.razor.cs +++ b/Schaad.Accounting.UI/Components/MyHeader.razor.cs @@ -11,21 +11,33 @@ public partial class MyHeader : ComponentBase private List years = new (); private int selectedYear; + private List mandators = new (); + private string selectedMandator; + protected override Task OnInitializedAsync() { for (var year = DateTime.Now.Year; year >= 2015; year--) { years.Add(year); } - + selectedYear = settingsService.GetYear(); + + mandators = settingsService.GetMandators(selectedYear).ToList(); + selectedMandator = settingsService.GetMandator(); return base.OnInitializedAsync(); } - public void YearChanged(string obj) + public void YearChanged(string syear) { - settingsService.SetYear(int.Parse(obj)); + var year = int.Parse(syear); + settingsService.SetYear(year); + mandators = settingsService.GetMandators(year).ToList(); + } + + public void MandatorChanged(string mandator) + { + settingsService.SetMandator(mandator); } - } \ No newline at end of file