[chore:] too much to documentate xD but changes like better AddressCheck, Progress Window, Result Window, etc.

This commit is contained in:
Elias Fierke
2025-07-09 23:01:13 +02:00
parent 4bdf50a290
commit 982373002d
22 changed files with 371 additions and 171 deletions

View File

@@ -1,4 +1,7 @@
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Avalonia.Threading;
namespace Logof_Client;
@@ -11,62 +14,163 @@ public class AddressCheck
NoCity,
NoStreet,
NoLastName,
NoFirstName
NoFirstName,
// empty,
FullAddressTooLong,
NoStreetNumber,
DoubledRefsid,
MayBeSameAddress
}
public static List<(int, List<ErrorTypes>)> Perform(KasAddressList addresses)
private readonly ProgressWindow _progress;
public AddressCheck(ProgressWindow progressWindow)
{
_progress = progressWindow;
}
public async Task<List<(int, List<ErrorTypes>)>> Perform(KasAddressList addresses)
{
var failed_refsids = new List<(int, List<ErrorTypes>)>();
var total = addresses.KasPersons.Count;
var current = 0;
foreach (var person in addresses.KasPersons)
await Task.Run(async () =>
{
var errors = new List<ErrorTypes>();
var hasFaults = false;
if (person.plz < 10000)
foreach (var person in addresses.KasPersons)
{
hasFaults = true;
errors.Add(ErrorTypes.PlzTooShort);
var errors = new List<ErrorTypes>();
var hasFaults = false;
var address_component_count = 2; // cause anrede and name are first
// Prüfung
if (person.plz < 10000)
{
hasFaults = true;
errors.Add(ErrorTypes.PlzTooShort);
}
else if (person.plz > 99999)
{
hasFaults = true;
errors.Add(ErrorTypes.PlzTooLong);
}
if (string.IsNullOrWhiteSpace(person.ort))
{
hasFaults = true;
errors.Add(ErrorTypes.NoCity);
}
else
{
address_component_count++;
}
var street = person.strasse.ToCharArray();
var intcount = 0;
foreach (var c in street)
{
int maybe;
if (int.TryParse(c.ToString(), out maybe)) intcount++;
}
if (intcount == 0)
{
hasFaults = true;
errors.Add(ErrorTypes.NoStreetNumber);
}
if (string.IsNullOrWhiteSpace(person.name))
{
hasFaults = true;
errors.Add(ErrorTypes.NoLastName);
}
if (string.IsNullOrWhiteSpace(person.vorname))
{
hasFaults = true;
errors.Add(ErrorTypes.NoFirstName);
}
if (string.IsNullOrWhiteSpace(person.strasse))
{
hasFaults = true;
errors.Add(ErrorTypes.NoStreet);
}
else
{
address_component_count++;
}
if (!string.IsNullOrWhiteSpace(person.strasse2)) address_component_count++;
if (!string.IsNullOrWhiteSpace(person.land)) address_component_count++;
if (!string.IsNullOrWhiteSpace(person.name1)) address_component_count++;
if (!string.IsNullOrWhiteSpace(person.name2)) address_component_count++;
if (!string.IsNullOrWhiteSpace(person.name3)) address_component_count++;
if (!string.IsNullOrWhiteSpace(person.name4)) address_component_count++;
if (!string.IsNullOrWhiteSpace(person.name5)) address_component_count++;
if (!string.IsNullOrWhiteSpace(person.funktion)) address_component_count++;
if (!string.IsNullOrWhiteSpace(person.funktion2)) address_component_count++;
if (!string.IsNullOrWhiteSpace(person.funktionad)) address_component_count++;
if (!string.IsNullOrWhiteSpace(person.abteilung)) address_component_count++;
foreach (var person2 in addresses.KasPersons)
{
if (addresses.KasPersons.IndexOf(person) == addresses.KasPersons.IndexOf(person2)) continue;
if (person.refsid == person2.refsid)
{
hasFaults = true;
errors.Add(ErrorTypes.DoubledRefsid);
}
if (person.name == person2.name &&
person.strasse == person2.strasse &&
person.vorname == person2.vorname &&
person.ort == person2.ort &&
person.funktion == person2.funktion &&
person.funktion2 == person2.funktion2 &&
person.funktionad == person2.funktionad &&
person.abteilung == person2.abteilung &&
person.name1 == person2.name1 &&
person.name2 == person2.name2 &&
person.name3 == person2.name3 &&
person.name4 == person2.name4 &&
person.name5 == person2.name5)
{
hasFaults = true;
errors.Add(ErrorTypes.MayBeSameAddress);
}
}
if (address_component_count > 10)
{
hasFaults = true;
errors.Add(ErrorTypes.FullAddressTooLong);
}
if (hasFaults)
lock (failed_refsids)
{
failed_refsids.Add((person.refsid, errors));
}
// Fortschritt aktualisieren
Interlocked.Increment(ref current);
var percent = current / (double)total * 100;
await Dispatcher.UIThread.InvokeAsync(() =>
{
if (hasFaults)
_progress.AddToLog($"Person mit refsid {person.refsid} ist fehlerhaft");
_progress.ChangePercentage(percent);
});
}
if (person.plz > 99999)
{
hasFaults = true;
errors.Add(ErrorTypes.PlzTooLong);
}
if (person.ort == null || person.ort == "")
{
hasFaults = true;
errors.Add(ErrorTypes.NoCity);
}
if (person.name == null || person.name == "")
{
hasFaults = true;
errors.Add(ErrorTypes.NoLastName);
}
if (person.vorname == null || person.vorname == "")
{
hasFaults = true;
errors.Add(ErrorTypes.NoFirstName);
}
if (person.strasse == null || person.strasse == "")
{
hasFaults = true;
errors.Add(ErrorTypes.NoStreet);
}
;
// More errors...
if (hasFaults) failed_refsids.Add((person.refsid, errors));
}
});
return failed_refsids;
}
}

View File

@@ -6,5 +6,6 @@
<Application.Styles>
<FluentTheme />
<StyleInclude Source="avares://Avalonia.Controls.DataGrid/Themes/Fluent.xaml"/>
</Application.Styles>
</Application>

View File

@@ -1,4 +1,5 @@
using System.Collections.Generic;
namespace Logof_Client;
public class KasAddressList
@@ -9,36 +10,10 @@ public class KasAddressList
{
KasPersons = new List<KasPerson>();
}
}
public class KasPerson
{
public int refsid { get; set; }
public string anrede { get; set; }
public string titel { get; set; }
public string vorname { get; set; }
public string adel { get; set; }
public string name { get; set; }
public string namezus { get; set; }
public string anredzus { get; set; }
public string strasse { get; set; }
public string strasse2 { get; set; }
public int plz { get; set; }
public string ort { get; set; }
public string land { get; set; }
public string pplz { get; set; }
public string postfach { get; set; }
public string name1 { get; set; }
public string name2 { get; set; }
public string name3 { get; set; }
public string name4 { get; set; }
public string name5 { get; set; }
public string funktion { get; set; }
public string funktion2 { get; set; }
public string abteilung { get; set; }
public string funktionad { get; set; }
public KasPerson()
{
refsid = 0;
@@ -66,30 +41,31 @@ public class KasPerson
abteilung = "";
funktionad = "";
}
public KasPerson(int refsid,
string anrede,
string titel,
string vorname,
string adel,
string name,
string namezus,
string anredzus,
string strasse,
string strasse2,
int plz,
string ort,
string land,
string pplz,
string postfach,
string name1,
string name2,
string name3,
string name4,
string name5,
string funktion,
string funktion2,
string abteilung,
string funktionad)
string anrede,
string titel,
string vorname,
string adel,
string name,
string namezus,
string anredzus,
string strasse,
string strasse2,
int plz,
string ort,
string land,
string pplz,
string postfach,
string name1,
string name2,
string name3,
string name4,
string name5,
string funktion,
string funktion2,
string abteilung,
string funktionad)
{
this.refsid = refsid;
this.anrede = anrede;
@@ -116,5 +92,43 @@ public class KasPerson
this.abteilung = abteilung;
this.funktionad = funktionad;
}
public int refsid { get; set; }
public string anrede { get; set; }
public string titel { get; set; }
public string vorname { get; set; }
public string adel { get; set; }
public string name { get; set; }
public string namezus { get; set; }
public string anredzus { get; set; }
public string strasse { get; set; }
public string strasse2 { get; set; }
public int plz { get; set; }
public string ort { get; set; }
public string land { get; set; }
public string pplz { get; set; }
public string postfach { get; set; }
public string name1 { get; set; }
public string name2 { get; set; }
public string name3 { get; set; }
public string name4 { get; set; }
public string name5 { get; set; }
public string funktion { get; set; }
public string funktion2 { get; set; }
public string abteilung { get; set; }
public string funktionad { get; set; }
}
public class KasPersonError
{
public KasPersonError((int, List<AddressCheck.ErrorTypes>) single_result)
{
refsid = single_result.Item1;
foreach (var err in single_result.Item2) errors += err + ", ";
errors = errors.Trim();
errors = errors.TrimEnd(',');
}
public int refsid { get; set; }
public string errors { get; set; }
}

View File

@@ -10,6 +10,7 @@
<ItemGroup>
<PackageReference Include="Avalonia" Version="11.3.2" />
<PackageReference Include="Avalonia.Controls.DataGrid" Version="11.3.2" />
<PackageReference Include="Avalonia.Desktop" Version="11.3.2" />
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.3.2" />
<PackageReference Include="Avalonia.Fonts.Inter" Version="11.3.2" />

View File

@@ -7,31 +7,53 @@ namespace Logof_Client;
public partial class MainWindow : Window
{
public static MainWindow _instance;
public Uri filePath;
public MainWindow()
{
InitializeComponent();
try
{
var temppath = "kaspersons.csv";
var result = DataImport.ImportKasAddressList(new Uri(temppath));
if (result.Item1)
{
var check_result = AddressCheck.Perform(result.Item2);
foreach (var item in check_result)
{
Console.WriteLine();
Console.Write(item.Item1 + " ");
foreach (var error in item.Item2) Console.Write(error + ", ");
}
}
}
catch
{
}
_instance = this;
// try
// {
// var temppath = "kaspersons.csv";
// var result = DataImport.ImportKasAddressList(new Uri(temppath));
// if (result.Item1)
// {
// var check_result = new AddressCheck().Perform(result.Item2);
// foreach (var item in check_result.Result)
// {
// Console.WriteLine();
// Console.Write(item.Item1 + " ");
// foreach (var error in item.Item2) Console.Write(error + ", ");
// }
// }
// }
// catch
// {
// }
}
private async void StartAddressCheck(Uri path)
{
var addresses = DataImport.ImportKasAddressList(path); // Ihr Code hier
var progressWindow = new ProgressWindow();
// Fenster anzeigen (nicht blockierend)
progressWindow.Show(_instance);
var processor = new AddressCheck(progressWindow);
var result = await processor.Perform(addresses.Item2);
// Nach Verarbeitung schließen
progressWindow.Close();
// Ergebnis anzeigen, z.B. als Dialog
new ResultWindow(result).Show();
//await MessageBox.Show(_instance, $"{result.Count} Einträge fehlerhaft.", "Fertig");
}
private void MnuExit_OnClick(object? sender, RoutedEventArgs e)
{
throw new NotImplementedException();
@@ -82,16 +104,17 @@ public partial class MainWindow : Window
private void BtnCheck_OnClick(object? sender, RoutedEventArgs e)
{
if (filePath == null) MessageBox.Show(this, "Bitte zunächst eine Datei auswählen", "Datei fehlt");
var result = DataImport.ImportKasAddressList(filePath);
if (result.Item1)
{
var check_result = AddressCheck.Perform(result.Item2);
foreach (var item in check_result)
{
Console.WriteLine();
Console.Write(item.Item1 + " ");
foreach (var error in item.Item2) Console.Write(error + ", ");
}
}
StartAddressCheck(filePath);
// var result = DataImport.ImportKasAddressList(filePath);
// if (result.Item1)
// {
// var check_result = new AddressCheck().Perform(result.Item2);
// foreach (var item in check_result.Result)
// {
// Console.WriteLine();
// Console.Write(item.Item1 + " ");
// foreach (var error in item.Item2) Console.Write(error + ", ");
// }
// }
}
}

18
ProgressWindow.axaml Normal file
View File

@@ -0,0 +1,18 @@
<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="800" Width="800" MinWidth="800" MaxWidth="800" d:DesignHeight="150"
Height="150" MinHeight="150" MaxHeight="150"
x:Class="Logof_Client.ProgressWindow" Title="Verarbeitung läuft...">
<Grid>
<!-- <ScrollViewer x:Name="ScvLog"> -->
<!-- <TextBlock x:Name="TbLog" Margin="10,10,10,50" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" -->
<!-- FontFamily="Consolas" /> -->
<!-- </ScrollViewer> -->
<TextBlock x:Name="TbLog" Margin="10,10,10,50" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
FontFamily="Consolas" />
<ProgressBar x:Name="PbProgress" HorizontalAlignment="Stretch" Height="30" VerticalAlignment="Bottom"
Margin="10,0,10,10" />
</Grid>
</Window>

24
ProgressWindow.axaml.cs Normal file
View File

@@ -0,0 +1,24 @@
using Avalonia.Controls;
namespace Logof_Client;
public partial class ProgressWindow : Window
{
public ProgressWindow()
{
InitializeComponent();
PbProgress.Minimum = 0;
PbProgress.Maximum = 100;
}
public void ChangePercentage(double percentage)
{
PbProgress.Value = percentage;
}
public void AddToLog(string message)
{
TbLog.Text = message;
//ScvLog.ScrollToEnd();
}
}

View File

@@ -1,9 +0,0 @@
<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Logof_Client.ResultWindow"
Title="ResultWindow">
Welcome to Avalonia!
</Window>

View File

@@ -1,13 +0,0 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace Logof_Client;
public partial class ResultWindow : Window
{
public ResultWindow()
{
InitializeComponent();
}
}

View File

@@ -1 +1 @@
6fe5162be4283c1411101dd639fbc8a545963efea312fd784c904b45361005c0
982c4bab1be7433e0655bc9d9093ed492303bd16c33e9bf09c663ad2ef1afbaa

Binary file not shown.

View File

@@ -13,7 +13,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Logof Client")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+0d121663397a12ffe7d914c4b6e0302d8f0670d0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+4bdf50a290804aab4f6671c7ded546f168c8e674")]
[assembly: System.Reflection.AssemblyProductAttribute("Logof Client")]
[assembly: System.Reflection.AssemblyTitleAttribute("Logof Client")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@@ -1 +1 @@
c05703a1f27fdffbabcbabba7a1bf53472ea728aab90b390cced0bdc9f8b02dc
f7afc36fe250c56352855cc054140e1d3e759a80e43f866429a6f585b3dd52ae

View File

@@ -30,5 +30,8 @@ build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
[/home/fierke/Nextcloud/Documents/source/repos/logofclient/Logof Client/MessageBox.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
[/home/fierke/Nextcloud/Documents/source/repos/logofclient/Logof Client/ProgressWindow.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
[/home/fierke/Nextcloud/Documents/source/repos/logofclient/Logof Client/ResultWindow.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml

View File

@@ -20,6 +20,7 @@
"net9.0"
],
"sources": {
"/usr/lib64/dotnet/library-packs": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
@@ -48,6 +49,10 @@
"target": "Package",
"version": "[11.3.2, )"
},
"Avalonia.Controls.DataGrid": {
"target": "Package",
"version": "[11.3.2, )"
},
"Avalonia.Desktop": {
"target": "Package",
"version": "[11.3.2, )"
@@ -80,18 +85,12 @@
],
"assetTargetFallback": true,
"warn": true,
"downloadDependencies": [
{
"name": "Microsoft.AspNetCore.App.Ref",
"version": "[9.0.4, 9.0.4]"
}
],
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "/usr/share/dotnet/sdk/9.0.105/PortableRuntimeIdentifierGraph.json"
"runtimeIdentifierGraphPath": "/usr/lib64/dotnet/sdk/9.0.106/PortableRuntimeIdentifierGraph.json"
}
}
}

View File

@@ -124,6 +124,22 @@
}
}
},
"Avalonia.Controls.DataGrid/11.3.2": {
"type": "package",
"dependencies": {
"Avalonia": "11.3.2"
},
"compile": {
"lib/net8.0/Avalonia.Controls.DataGrid.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net8.0/Avalonia.Controls.DataGrid.dll": {
"related": ".xml"
}
}
},
"Avalonia.Desktop/11.3.2": {
"type": "package",
"dependencies": {
@@ -819,6 +835,25 @@
"lib/netstandard2.0/Avalonia.Controls.ColorPicker.xml"
]
},
"Avalonia.Controls.DataGrid/11.3.2": {
"sha512": "uAljhbq2csXx93TvG8LFSluIDiJByrsZ7OdFyGOC6mkoM+DIJsmMCJ4ce/zgS1aPFLP9wpa8ggLLSbgy7Vap6g==",
"type": "package",
"path": "avalonia.controls.datagrid/11.3.2",
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"avalonia.controls.datagrid.11.3.2.nupkg.sha512",
"avalonia.controls.datagrid.nuspec",
"lib/net6.0/Avalonia.Controls.DataGrid.dll",
"lib/net6.0/Avalonia.Controls.DataGrid.xml",
"lib/net8.0/Avalonia.Controls.DataGrid.dll",
"lib/net8.0/Avalonia.Controls.DataGrid.xml",
"lib/netstandard2.0/Avalonia.Controls.DataGrid.dll",
"lib/netstandard2.0/Avalonia.Controls.DataGrid.xml",
"readme.md"
]
},
"Avalonia.Desktop/11.3.2": {
"sha512": "b2ZPZ60UN0Uib3ZxFrf+ixYiJTBFaXrpQAcXTSUKTDw0nAU29sbfjvdtpBkBd6+idWpNtI+GhOjf0Mw0v1ncQg==",
"type": "package",
@@ -1435,6 +1470,7 @@
"projectFileDependencyGroups": {
"net9.0": [
"Avalonia >= 11.3.2",
"Avalonia.Controls.DataGrid >= 11.3.2",
"Avalonia.Desktop >= 11.3.2",
"Avalonia.Diagnostics >= 11.3.2",
"Avalonia.Fonts.Inter >= 11.3.2",
@@ -1461,6 +1497,7 @@
"net9.0"
],
"sources": {
"/usr/lib64/dotnet/library-packs": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
@@ -1489,6 +1526,10 @@
"target": "Package",
"version": "[11.3.2, )"
},
"Avalonia.Controls.DataGrid": {
"target": "Package",
"version": "[11.3.2, )"
},
"Avalonia.Desktop": {
"target": "Package",
"version": "[11.3.2, )"
@@ -1521,18 +1562,12 @@
],
"assetTargetFallback": true,
"warn": true,
"downloadDependencies": [
{
"name": "Microsoft.AspNetCore.App.Ref",
"version": "[9.0.4, 9.0.4]"
}
],
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "/usr/share/dotnet/sdk/9.0.105/PortableRuntimeIdentifierGraph.json"
"runtimeIdentifierGraphPath": "/usr/lib64/dotnet/sdk/9.0.106/PortableRuntimeIdentifierGraph.json"
}
}
}

View File

@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "D+4nG7Cnz1A=",
"dgSpecHash": "iFRYA+o6oII=",
"success": true,
"projectFilePath": "/home/fierke/Nextcloud/Documents/source/repos/logofclient/Logof Client/Logof Client.csproj",
"expectedPackageFiles": [
@@ -8,6 +8,7 @@
"/home/fierke/.nuget/packages/avalonia.angle.windows.natives/2.1.25547.20250602/avalonia.angle.windows.natives.2.1.25547.20250602.nupkg.sha512",
"/home/fierke/.nuget/packages/avalonia.buildservices/0.0.31/avalonia.buildservices.0.0.31.nupkg.sha512",
"/home/fierke/.nuget/packages/avalonia.controls.colorpicker/11.3.2/avalonia.controls.colorpicker.11.3.2.nupkg.sha512",
"/home/fierke/.nuget/packages/avalonia.controls.datagrid/11.3.2/avalonia.controls.datagrid.11.3.2.nupkg.sha512",
"/home/fierke/.nuget/packages/avalonia.desktop/11.3.2/avalonia.desktop.11.3.2.nupkg.sha512",
"/home/fierke/.nuget/packages/avalonia.diagnostics/11.3.2/avalonia.diagnostics.11.3.2.nupkg.sha512",
"/home/fierke/.nuget/packages/avalonia.fonts.inter/11.3.2/avalonia.fonts.inter.11.3.2.nupkg.sha512",
@@ -32,8 +33,7 @@
"/home/fierke/.nuget/packages/skiasharp.nativeassets.webassembly/2.88.9/skiasharp.nativeassets.webassembly.2.88.9.nupkg.sha512",
"/home/fierke/.nuget/packages/skiasharp.nativeassets.win32/2.88.9/skiasharp.nativeassets.win32.2.88.9.nupkg.sha512",
"/home/fierke/.nuget/packages/system.io.pipelines/8.0.0/system.io.pipelines.8.0.0.nupkg.sha512",
"/home/fierke/.nuget/packages/tmds.dbus.protocol/0.21.2/tmds.dbus.protocol.0.21.2.nupkg.sha512",
"/home/fierke/.nuget/packages/microsoft.aspnetcore.app.ref/9.0.4/microsoft.aspnetcore.app.ref.9.0.4.nupkg.sha512"
"/home/fierke/.nuget/packages/tmds.dbus.protocol/0.21.2/tmds.dbus.protocol.0.21.2.nupkg.sha512"
],
"logs": []
}

View File

@@ -1 +1 @@
"restore":{"projectUniqueName":"/home/fierke/Nextcloud/Documents/source/repos/logofclient/Logof Client/Logof Client.csproj","projectName":"Logof Client","projectPath":"/home/fierke/Nextcloud/Documents/source/repos/logofclient/Logof Client/Logof Client.csproj","outputPath":"/home/fierke/Nextcloud/Documents/source/repos/logofclient/Logof Client/obj/","projectStyle":"PackageReference","originalTargetFrameworks":["net9.0"],"sources":{"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net9.0":{"targetAlias":"net9.0","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]},"restoreAuditProperties":{"enableAudit":"true","auditLevel":"low","auditMode":"direct"},"SdkAnalysisLevel":"9.0.100"}"frameworks":{"net9.0":{"targetAlias":"net9.0","dependencies":{"Avalonia":{"target":"Package","version":"[11.3.2, )"},"Avalonia.Desktop":{"target":"Package","version":"[11.3.2, )"},"Avalonia.Diagnostics":{"target":"Package","version":"[11.3.2, )"},"Avalonia.Fonts.Inter":{"target":"Package","version":"[11.3.2, )"},"Avalonia.Themes.Fluent":{"target":"Package","version":"[11.3.2, )"},"Lucide.Avalonia":{"target":"Package","version":"[0.1.35, )"}},"imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"downloadDependencies":[{"name":"Microsoft.AspNetCore.App.Ref","version":"[9.0.4, 9.0.4]"}],"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"/usr/share/dotnet/sdk/9.0.105/PortableRuntimeIdentifierGraph.json"}}
"restore":{"projectUniqueName":"/home/fierke/Nextcloud/Documents/source/repos/logofclient/Logof Client/Logof Client.csproj","projectName":"Logof Client","projectPath":"/home/fierke/Nextcloud/Documents/source/repos/logofclient/Logof Client/Logof Client.csproj","outputPath":"/home/fierke/Nextcloud/Documents/source/repos/logofclient/Logof Client/obj/","projectStyle":"PackageReference","originalTargetFrameworks":["net9.0"],"sources":{"/usr/lib64/dotnet/library-packs":{},"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net9.0":{"targetAlias":"net9.0","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]},"restoreAuditProperties":{"enableAudit":"true","auditLevel":"low","auditMode":"direct"},"SdkAnalysisLevel":"9.0.100"}"frameworks":{"net9.0":{"targetAlias":"net9.0","dependencies":{"Avalonia":{"target":"Package","version":"[11.3.2, )"},"Avalonia.Controls.DataGrid":{"target":"Package","version":"[11.3.2, )"},"Avalonia.Desktop":{"target":"Package","version":"[11.3.2, )"},"Avalonia.Diagnostics":{"target":"Package","version":"[11.3.2, )"},"Avalonia.Fonts.Inter":{"target":"Package","version":"[11.3.2, )"},"Avalonia.Themes.Fluent":{"target":"Package","version":"[11.3.2, )"},"Lucide.Avalonia":{"target":"Package","version":"[0.1.35, )"}},"imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"/usr/lib64/dotnet/sdk/9.0.106/PortableRuntimeIdentifierGraph.json"}}

View File

@@ -1 +1 @@
17515302868997761
17520917705843408

View File

@@ -1 +1 @@
17515302868997761
17520918778041105