[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.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Avalonia.Threading;
namespace Logof_Client; namespace Logof_Client;
@@ -11,62 +14,163 @@ public class AddressCheck
NoCity, NoCity,
NoStreet, NoStreet,
NoLastName, 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 failed_refsids = new List<(int, List<ErrorTypes>)>();
var total = addresses.KasPersons.Count;
var current = 0;
await Task.Run(async () =>
{
foreach (var person in addresses.KasPersons) foreach (var person in addresses.KasPersons)
{ {
var errors = new List<ErrorTypes>(); var errors = new List<ErrorTypes>();
var hasFaults = false; var hasFaults = false;
var address_component_count = 2; // cause anrede and name are first
// Prüfung
if (person.plz < 10000) if (person.plz < 10000)
{ {
hasFaults = true; hasFaults = true;
errors.Add(ErrorTypes.PlzTooShort); errors.Add(ErrorTypes.PlzTooShort);
} }
else if (person.plz > 99999)
if (person.plz > 99999)
{ {
hasFaults = true; hasFaults = true;
errors.Add(ErrorTypes.PlzTooLong); errors.Add(ErrorTypes.PlzTooLong);
} }
if (person.ort == null || person.ort == "") if (string.IsNullOrWhiteSpace(person.ort))
{ {
hasFaults = true; hasFaults = true;
errors.Add(ErrorTypes.NoCity); errors.Add(ErrorTypes.NoCity);
} }
else
{
address_component_count++;
}
if (person.name == null || person.name == "") 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; hasFaults = true;
errors.Add(ErrorTypes.NoLastName); errors.Add(ErrorTypes.NoLastName);
} }
if (person.vorname == null || person.vorname == "") if (string.IsNullOrWhiteSpace(person.vorname))
{ {
hasFaults = true; hasFaults = true;
errors.Add(ErrorTypes.NoFirstName); errors.Add(ErrorTypes.NoFirstName);
} }
if (person.strasse == null || person.strasse == "") if (string.IsNullOrWhiteSpace(person.strasse))
{ {
hasFaults = true; hasFaults = true;
errors.Add(ErrorTypes.NoStreet); errors.Add(ErrorTypes.NoStreet);
} }
else
; {
// More errors... address_component_count++;
if (hasFaults) failed_refsids.Add((person.refsid, errors));
} }
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);
});
}
});
return failed_refsids; return failed_refsids;
} }
} }

View File

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

View File

@@ -1,4 +1,5 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace Logof_Client; namespace Logof_Client;
public class KasAddressList public class KasAddressList
@@ -9,36 +10,10 @@ public class KasAddressList
{ {
KasPersons = new List<KasPerson>(); KasPersons = new List<KasPerson>();
} }
} }
public class 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() public KasPerson()
{ {
refsid = 0; refsid = 0;
@@ -66,6 +41,7 @@ public class KasPerson
abteilung = ""; abteilung = "";
funktionad = ""; funktionad = "";
} }
public KasPerson(int refsid, public KasPerson(int refsid,
string anrede, string anrede,
string titel, string titel,
@@ -116,5 +92,43 @@ public class KasPerson
this.abteilung = abteilung; this.abteilung = abteilung;
this.funktionad = funktionad; 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> <ItemGroup>
<PackageReference Include="Avalonia" Version="11.3.2" /> <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.Desktop" Version="11.3.2" />
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.3.2" /> <PackageReference Include="Avalonia.Themes.Fluent" Version="11.3.2" />
<PackageReference Include="Avalonia.Fonts.Inter" 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 partial class MainWindow : Window
{ {
public static MainWindow _instance;
public Uri filePath; public Uri filePath;
public MainWindow() public MainWindow()
{ {
InitializeComponent(); InitializeComponent();
try _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 temppath = "kaspersons.csv"; var addresses = DataImport.ImportKasAddressList(path); // Ihr Code hier
var result = DataImport.ImportKasAddressList(new Uri(temppath)); var progressWindow = new ProgressWindow();
if (result.Item1)
{ // Fenster anzeigen (nicht blockierend)
var check_result = AddressCheck.Perform(result.Item2); progressWindow.Show(_instance);
foreach (var item in check_result)
{ var processor = new AddressCheck(progressWindow);
Console.WriteLine(); var result = await processor.Perform(addresses.Item2);
Console.Write(item.Item1 + " ");
foreach (var error in item.Item2) Console.Write(error + ", "); // Nach Verarbeitung schließen
} progressWindow.Close();
}
} // Ergebnis anzeigen, z.B. als Dialog
catch new ResultWindow(result).Show();
{ //await MessageBox.Show(_instance, $"{result.Count} Einträge fehlerhaft.", "Fertig");
}
} }
private void MnuExit_OnClick(object? sender, RoutedEventArgs e) private void MnuExit_OnClick(object? sender, RoutedEventArgs e)
{ {
throw new NotImplementedException(); throw new NotImplementedException();
@@ -82,16 +104,17 @@ public partial class MainWindow : Window
private void BtnCheck_OnClick(object? sender, RoutedEventArgs e) private void BtnCheck_OnClick(object? sender, RoutedEventArgs e)
{ {
if (filePath == null) MessageBox.Show(this, "Bitte zunächst eine Datei auswählen", "Datei fehlt"); if (filePath == null) MessageBox.Show(this, "Bitte zunächst eine Datei auswählen", "Datei fehlt");
var result = DataImport.ImportKasAddressList(filePath); StartAddressCheck(filePath);
if (result.Item1) // var result = DataImport.ImportKasAddressList(filePath);
{ // if (result.Item1)
var check_result = AddressCheck.Perform(result.Item2); // {
foreach (var item in check_result) // var check_result = new AddressCheck().Perform(result.Item2);
{ // foreach (var item in check_result.Result)
Console.WriteLine(); // {
Console.Write(item.Item1 + " "); // Console.WriteLine();
foreach (var error in item.Item2) Console.Write(error + ", "); // 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.AssemblyCompanyAttribute("Logof Client")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] [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.AssemblyProductAttribute("Logof Client")]
[assembly: System.Reflection.AssemblyTitleAttribute("Logof Client")] [assembly: System.Reflection.AssemblyTitleAttribute("Logof Client")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] [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] [/home/fierke/Nextcloud/Documents/source/repos/logofclient/Logof Client/MessageBox.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml 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] [/home/fierke/Nextcloud/Documents/source/repos/logofclient/Logof Client/ResultWindow.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml

View File

@@ -20,6 +20,7 @@
"net9.0" "net9.0"
], ],
"sources": { "sources": {
"/usr/lib64/dotnet/library-packs": {},
"https://api.nuget.org/v3/index.json": {} "https://api.nuget.org/v3/index.json": {}
}, },
"frameworks": { "frameworks": {
@@ -48,6 +49,10 @@
"target": "Package", "target": "Package",
"version": "[11.3.2, )" "version": "[11.3.2, )"
}, },
"Avalonia.Controls.DataGrid": {
"target": "Package",
"version": "[11.3.2, )"
},
"Avalonia.Desktop": { "Avalonia.Desktop": {
"target": "Package", "target": "Package",
"version": "[11.3.2, )" "version": "[11.3.2, )"
@@ -80,18 +85,12 @@
], ],
"assetTargetFallback": true, "assetTargetFallback": true,
"warn": true, "warn": true,
"downloadDependencies": [
{
"name": "Microsoft.AspNetCore.App.Ref",
"version": "[9.0.4, 9.0.4]"
}
],
"frameworkReferences": { "frameworkReferences": {
"Microsoft.NETCore.App": { "Microsoft.NETCore.App": {
"privateAssets": "all" "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": { "Avalonia.Desktop/11.3.2": {
"type": "package", "type": "package",
"dependencies": { "dependencies": {
@@ -819,6 +835,25 @@
"lib/netstandard2.0/Avalonia.Controls.ColorPicker.xml" "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": { "Avalonia.Desktop/11.3.2": {
"sha512": "b2ZPZ60UN0Uib3ZxFrf+ixYiJTBFaXrpQAcXTSUKTDw0nAU29sbfjvdtpBkBd6+idWpNtI+GhOjf0Mw0v1ncQg==", "sha512": "b2ZPZ60UN0Uib3ZxFrf+ixYiJTBFaXrpQAcXTSUKTDw0nAU29sbfjvdtpBkBd6+idWpNtI+GhOjf0Mw0v1ncQg==",
"type": "package", "type": "package",
@@ -1435,6 +1470,7 @@
"projectFileDependencyGroups": { "projectFileDependencyGroups": {
"net9.0": [ "net9.0": [
"Avalonia >= 11.3.2", "Avalonia >= 11.3.2",
"Avalonia.Controls.DataGrid >= 11.3.2",
"Avalonia.Desktop >= 11.3.2", "Avalonia.Desktop >= 11.3.2",
"Avalonia.Diagnostics >= 11.3.2", "Avalonia.Diagnostics >= 11.3.2",
"Avalonia.Fonts.Inter >= 11.3.2", "Avalonia.Fonts.Inter >= 11.3.2",
@@ -1461,6 +1497,7 @@
"net9.0" "net9.0"
], ],
"sources": { "sources": {
"/usr/lib64/dotnet/library-packs": {},
"https://api.nuget.org/v3/index.json": {} "https://api.nuget.org/v3/index.json": {}
}, },
"frameworks": { "frameworks": {
@@ -1489,6 +1526,10 @@
"target": "Package", "target": "Package",
"version": "[11.3.2, )" "version": "[11.3.2, )"
}, },
"Avalonia.Controls.DataGrid": {
"target": "Package",
"version": "[11.3.2, )"
},
"Avalonia.Desktop": { "Avalonia.Desktop": {
"target": "Package", "target": "Package",
"version": "[11.3.2, )" "version": "[11.3.2, )"
@@ -1521,18 +1562,12 @@
], ],
"assetTargetFallback": true, "assetTargetFallback": true,
"warn": true, "warn": true,
"downloadDependencies": [
{
"name": "Microsoft.AspNetCore.App.Ref",
"version": "[9.0.4, 9.0.4]"
}
],
"frameworkReferences": { "frameworkReferences": {
"Microsoft.NETCore.App": { "Microsoft.NETCore.App": {
"privateAssets": "all" "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, "version": 2,
"dgSpecHash": "D+4nG7Cnz1A=", "dgSpecHash": "iFRYA+o6oII=",
"success": true, "success": true,
"projectFilePath": "/home/fierke/Nextcloud/Documents/source/repos/logofclient/Logof Client/Logof Client.csproj", "projectFilePath": "/home/fierke/Nextcloud/Documents/source/repos/logofclient/Logof Client/Logof Client.csproj",
"expectedPackageFiles": [ "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.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.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.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.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.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", "/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.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/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/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/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"
], ],
"logs": [] "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