Add mandator dropdown

This commit is contained in:
Claudio Schaad 2025-05-05 10:18:03 +02:00
parent 38a1fb65c5
commit d21c49d486
5 changed files with 33 additions and 5 deletions

View file

@ -1,4 +1,5 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ABar_002Ecs_002Fl_003AC_0021_003FUsers_003Fschaa_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003F3d754f61d7ca16fefcc624d522ddfb3235d54b85ab5638c1e181cde5af4357d_003FBar_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AExceptionDispatchInfo_002Ecs_002Fl_003AC_0021_003FUsers_003Fschaa_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003Fbd1d5c50194fea68ff3559c160230b0ab50f5acf4ce3061bffd6d62958e2182_003FExceptionDispatchInfo_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AHttpHeaders_002Ecs_002Fl_003AC_0021_003FUsers_003Fschaa_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003F66e1248da26799c021f14a7e458d63250ea9fa0bcc979f1e5a1a43ca6f3cc7_003FHttpHeaders_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AThrowHelper_002Ecs_002Fl_003AC_0021_003FUsers_003Fschaa_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003F6354a7b35d7821629924d3676acd7e67a6f7f94343e0e66ec439aa2bd6ed5_003FThrowHelper_002Ecs/@EntryIndexedValue">ForceIncluded</s:String></wpf:ResourceDictionary>

View file

@ -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<string> GetMandators(int year);
void SetMandator(string mandator);

View file

@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Schaad.Accounting.Datasets;
@ -44,6 +45,12 @@ namespace Schaad.Accounting.Services
return mandator;
}
public IReadOnlyList<string> 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)
{
this.mandator = mandator;

View file

@ -8,8 +8,14 @@ AccountingNext
OptionText="@(i => i.ToString())"
OptionValue="@(i => i.ToString())"
@bind-SelectedOption="@selectedYear"
ValueChanged="YearChanged" />
ValueChanged="YearChanged"/>
<FluentSelect TOption="string"
Items=@mandators
OptionText="@(i => i.ToString())"
OptionValue="@(i => i.ToString())"
@bind-SelectedOption="@selectedMandator"
ValueChanged="MandatorChanged"/>
</FluentStack>
@code {

View file

@ -11,6 +11,9 @@ public partial class MyHeader : ComponentBase
private List<int> years = new ();
private int selectedYear;
private List<string> mandators = new ();
private string selectedMandator;
protected override Task OnInitializedAsync()
{
for (var year = DateTime.Now.Year; year >= 2015; year--)
@ -20,12 +23,21 @@ public partial class MyHeader : ComponentBase
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);
}
}