From 982373002d22f57111b1db48e44b1c1da9db58ee Mon Sep 17 00:00:00 2001 From: Elias Fierke Date: Wed, 9 Jul 2025 23:01:13 +0200 Subject: [PATCH] [chore:] too much to documentate xD but changes like better AddressCheck, Progress Window, Result Window, etc. --- AddressCheck.cs | 200 +++++++++++++----- App.axaml | 1 + DataStructures.cs | 112 +++++----- Logof Client.csproj | 1 + MainWindow.axaml.cs | 81 ++++--- ProgressWindow.axaml | 18 ++ ProgressWindow.axaml.cs | 24 +++ ResultWindow.axaml | 9 - ResultWindow.axaml.cs | 13 -- .../net9.0/Avalonia/Resources.Inputs.cache | 2 +- obj/Debug/net9.0/Avalonia/resources | Bin 7006 -> 8442 bytes obj/Debug/net9.0/Logof Client.AssemblyInfo.cs | 2 +- .../Logof Client.AssemblyInfoInputs.cache | 2 +- ....GeneratedMSBuildEditorConfig.editorconfig | 3 + obj/Debug/net9.0/Logof Client.assets.cache | Bin 21906 -> 22593 bytes ...ogof Client.csproj.AssemblyReference.cache | Bin 12326 -> 12796 bytes obj/Logof Client.csproj.nuget.dgspec.json | 13 +- obj/project.assets.json | 49 ++++- obj/project.nuget.cache | 6 +- obj/project.packagespec.json | 2 +- obj/rider.project.model.nuget.info | 2 +- obj/rider.project.restore.info | 2 +- 22 files changed, 371 insertions(+), 171 deletions(-) create mode 100644 ProgressWindow.axaml create mode 100644 ProgressWindow.axaml.cs delete mode 100644 ResultWindow.axaml delete mode 100644 ResultWindow.axaml.cs diff --git a/AddressCheck.cs b/AddressCheck.cs index f137daa..00f65e5 100644 --- a/AddressCheck.cs +++ b/AddressCheck.cs @@ -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)> Perform(KasAddressList addresses) + private readonly ProgressWindow _progress; + + public AddressCheck(ProgressWindow progressWindow) + { + _progress = progressWindow; + } + + public async Task)>> Perform(KasAddressList addresses) { var failed_refsids = new List<(int, List)>(); + var total = addresses.KasPersons.Count; + var current = 0; - foreach (var person in addresses.KasPersons) + await Task.Run(async () => { - var errors = new List(); - var hasFaults = false; - - - if (person.plz < 10000) + foreach (var person in addresses.KasPersons) { - hasFaults = true; - errors.Add(ErrorTypes.PlzTooShort); + var errors = new List(); + 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; } } \ No newline at end of file diff --git a/App.axaml b/App.axaml index 6a3d708..0e473f8 100644 --- a/App.axaml +++ b/App.axaml @@ -6,5 +6,6 @@ + \ No newline at end of file diff --git a/DataStructures.cs b/DataStructures.cs index 99ca00a..2c24ed7 100644 --- a/DataStructures.cs +++ b/DataStructures.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; + namespace Logof_Client; public class KasAddressList @@ -9,36 +10,10 @@ public class KasAddressList { KasPersons = new List(); } - } 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) 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; } +} \ No newline at end of file diff --git a/Logof Client.csproj b/Logof Client.csproj index 3d5606a..8371e0d 100644 --- a/Logof Client.csproj +++ b/Logof Client.csproj @@ -10,6 +10,7 @@ + diff --git a/MainWindow.axaml.cs b/MainWindow.axaml.cs index 30946d4..7e45890 100644 --- a/MainWindow.axaml.cs +++ b/MainWindow.axaml.cs @@ -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 + ", "); + // } + // } } } \ No newline at end of file diff --git a/ProgressWindow.axaml b/ProgressWindow.axaml new file mode 100644 index 0000000..397950d --- /dev/null +++ b/ProgressWindow.axaml @@ -0,0 +1,18 @@ + + + + + + + + + + \ No newline at end of file diff --git a/ProgressWindow.axaml.cs b/ProgressWindow.axaml.cs new file mode 100644 index 0000000..a9fa277 --- /dev/null +++ b/ProgressWindow.axaml.cs @@ -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(); + } +} \ No newline at end of file diff --git a/ResultWindow.axaml b/ResultWindow.axaml deleted file mode 100644 index fff9103..0000000 --- a/ResultWindow.axaml +++ /dev/null @@ -1,9 +0,0 @@ - - Welcome to Avalonia! - diff --git a/ResultWindow.axaml.cs b/ResultWindow.axaml.cs deleted file mode 100644 index 8737a0a..0000000 --- a/ResultWindow.axaml.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Avalonia; -using Avalonia.Controls; -using Avalonia.Markup.Xaml; - -namespace Logof_Client; - -public partial class ResultWindow : Window -{ - public ResultWindow() - { - InitializeComponent(); - } -} \ No newline at end of file diff --git a/obj/Debug/net9.0/Avalonia/Resources.Inputs.cache b/obj/Debug/net9.0/Avalonia/Resources.Inputs.cache index 4d0b741..3bf8e10 100644 --- a/obj/Debug/net9.0/Avalonia/Resources.Inputs.cache +++ b/obj/Debug/net9.0/Avalonia/Resources.Inputs.cache @@ -1 +1 @@ -6fe5162be4283c1411101dd639fbc8a545963efea312fd784c904b45361005c0 +982c4bab1be7433e0655bc9d9093ed492303bd16c33e9bf09c663ad2ef1afbaa diff --git a/obj/Debug/net9.0/Avalonia/resources b/obj/Debug/net9.0/Avalonia/resources index d0245c77ca98c7505db2ab44c9d3b114b28804d9..488378e445e779c6831c02bfaa6677addc26545b 100644 GIT binary patch delta 1073 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 literal 21906 zcmcg!S$iDC6&1mF33!#Ujgf8H#x{%HBgv8wWRr(jj;i%wXm+QlV%(FqFnvhDd5*DeeXTPLlNf?ct_)f-MND3tuL z0?lGjn2dF-$>gC`@;oY={%%5||KE&swR>1+or+VlL%$a2z<}4cA8EQJ(3-PQK)oic zAyKbWcHj^SRe}C^mDb_=ElB4(MmgZ3zi52VW-BTYGhyNKqSt5>UjEi_ea z0{~|_2Xrxt7L7IA2%y=HfzI2trFzx6YL`7ztu_JdT(`gs1LN($dAM^NC$x>#xfL*- zkH7P7vF4xl%ch1S!_s-fU938lvoj`~&0WEHr0y-*6%)=D;7oPgL52~q6#$i709G-1 z|BJro*Q#!D$*Cn~*K_BatWs((PLuv@L!Z}m8=w=zOIB(-Qa;;Zm7HKH^s6Rx*bq|T zfIB3>etdsCU)@Wty;$*s(8Y8T&ortkPYE>+yi)?cJwNaQ8a=SwN@#BDGYz$AQscn8 zB;egG0M{HRM>C&+nxd)qNWgdC`=xwMU9m%V*)g^9g@y*N=Uxf!PJA!rgR41ZKXj~W z%@2JHY!mLKNOd+=i1ITX1J{IxlN?@#7~3a>e3C$JX0 zx>E^FHN6}uo@pp@@IeXuV9VfvTdsP>?v26c8j2kJkOY1h-yh3Y^XqQq=175K-4kQoi%&B3_aT|hfmbiOCC5tL`ypVR z9OGa!kw)s=v#K4B;ZDSG7Cy~0OPPF&B7BQly%M@uZUAo>E_PhGG5j}mKQ2Woynclk za3}^G#^)JhThdz}wd062F=0KBAdLfw-uR{_9El-L#t@_UeAEoF8iY>Sa(%1nRvpi+ zV7Y{4gQyj)A?6~b>5JBEqQomU7Nd^GsQ2U3yhsYmCHT?v^+1@^A!}q9OEWf5E|b#K zDJZFo=|l|rKn(gIKIxCFUROtGwKPv<(jOn8-RL=1H1D|xEc%z`h>gkcCDH!m3l^%2 zo@2o#mHg|070q`6sq9KsPSstnH0RWo-J;WYv@d<6a=a+>wp1gYu}Qd72!->KeZZUx z>4BL1>A}{tsE9Gi_M|dt_N0fK(}y(VNh0c(nSzv$q6vZ?ZAr^%m~j%_mWp8ZNU%9$ zoJca5k;JV$83Ya-t{JydUs+43Y!@%ikIS29P;B$pX~%+C~k6*-fyeXrn3^has2=UTJ{x`E+r27nDG8&`JZ4&qFl<@L-h&r1Mxy z45BH&Tfr$!@tu#S)GBKbI&Yvj7}c}#;~ndHfY2^2U)#Z18p@}#6S-*(4GZ}7#@$?u67Z?d`Y_zg)MY=RdHd<-HLVx5JCvPmpwH`v6MtT_O9MTNZd87;U zY4o2Hi1;3AMz3}zwEH{Y2U$iA(C$on-!Eh)EdmuW0bELf)Eht;A0@esz8Ds0RLnkazw* zq`tSI0UpyZcpUQ1J3wp{>ssJL8vGA;1z&6+>+qk@;6Dj@Yref|02mtH)&S2#{#N?_ zj3W2_$y(Efv&upgA8A-?t?LbRc+BD4s3x7Q|&249;H4ch2d(YOYA@7FGj z7+<>(G1}Zv5pyB$=Gul);A6q{s6xkV=Gxl8Pu?2U2EK~M)1YCVsmtwc>?cH28~Z9E zH4y2>dYN?vUoX>e7)4S+)8=oF*3*m)Ur!SoItZX*6GGmz0|H5}OaO#NDL){fB2$MB z&5*0Pmfn`#*mb`i@482!!=NyN-LjFfvC;djk)e^Xq4A-SLVQRhC_wjwT`P}|7UDpo zz5E3HWNh9C%OiA-Vk6M$ZyAXgUq_Mi$)@mAaYW8kFXPIBV@aU|mY38W|TwR<+ioDK~?SV_oXL?jWU z3-Qs#RmhUDA^UWn1h$GJ$%*5qkci`_kpd$}9K#X^w&Ga09UXAMaiIE2dWI`y-4N4| zX56!f8v;M!{Tbl%x#F|^5t`)Df#s5X{Qt>A_@&6JM@&7W?N>BKg>w(wiu=xr|smPO@$bS`y$iGD2 zdrH2owtpG4RP;$s^uLBg^uLbu{7t>%-`NQI2H2@;L2|0aD@as}Z_;P)Dp7NT;&NNv z@GTHiRedkD`UYq|Id{n$iPP~7DM7)2B)Fa-)eQ9B={0w|lyh%>He~v`Fe}PnO z_f5rtK%Wi^M<={f?;z{bWM|hBcWGV)ICl+xiSH`XBq!3`r3u?54QCu@{F_KO`RGlJ z&HVIVNyLAxAx?54&i(XS4~Uz_wt@C9AHgz2YFOaClz>1sc^Sk=7x-j-(pZBqzErAknKx4zJe(x|xYG58>Z| zh>9@Di7@wb{caO(xQN;DoQL!8HJnLKocY|?^)b;p-9KpPlAP%BX=SmUCXP(AJcP5B zS+r}$D!&1IK7RkG;YxDi%B}KJJ6t1+EOS*EWX4zoP5vbD{j-KI$%!vF#%_1{>IMQc zW-{BqXxNgR*m4`(ZMGTno2zZ#)UYKvvE`;0UmJga#lKrF)XzHMZ1i&s)1~x2OFx%C zg5P7nox1hW&DqVfc6e>N66YCE9c@m|*$k>4@?$W^R0@hyDhHH$;tI237uk&L3WYKwdoE=ZHG zi%*1?z4$bs%0+K2scLRS9Z}`U+!Rq}j_ypEGDjMeS-Mqqw+iu!;@a#!y&_7@T+F&t zr5fK;&0g5r5c~DKt)vAAx>366vOc=$!h2KFpn5jltfFkV{F#hz-Q`bl`D%SM#qEh} z({zVZbsg%K##PKitN|2vrih;6&J+mJjmm>8bMwV2%De7@U3NCa=C^-3n8w{}x9Eo6 z>Xfs93!$Z3&e&eyY`o+IzPId@)?KdEopofNj~nMt>9pc#E@kPk%tX#i!ZyU`@p5Kt zK7jIIKEzOQOa7!Wt9q}K57pERCo|io#zn)+t5s)1ybjrP+OMw8_(j`W7orz-z>%(!v$vooWXddJMi*Ix zY`3brQFCEa@#SDzsdON)DW9wY>lyJQDWcV-A2AURq}i4|$j+vMx|lM>P*O~XVqhn; z-rlqlO>*wH8pIGAIq6_7sF&FkE^n;y*YC@N46adF)mTr zW9&`FTOtoUWsk8eyvHCOmWZugmHp-%o1SDpFXPJVgra zq{xYJlR;_x^n$SES+kXG{6;L#R8};trR|qmYVB~v40t@F&RV3Yvdzk(t}12Sk3`JS z$&-6h*r-3VCr-pn8u-Gbr<$49o$DsQ-V@-rW&mh%4qbO7y+tYVG+SyK1HC0FW_l}A;{O3N7A-;m diff --git a/obj/Debug/net9.0/Logof Client.csproj.AssemblyReference.cache b/obj/Debug/net9.0/Logof Client.csproj.AssemblyReference.cache index 0186fc832abef027b9f11e373b07d6dee443add5..b43482dc1705c8c142523a39615709a4f7cf8f55 100644 GIT binary patch delta 159 zcmZ3M@F$srjZuz)fq~I;@wUZr6iUlrWa+VOiqxL zad3u-x&TGpfuedTIXR4sKm!Dmzk)Cp?va1xm(h4c;p#* PeJA@et8La2`6CSgP>?mk delta 29 lcmey9yexr(jZv0?fq~I;@= 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" } } } diff --git a/obj/project.nuget.cache b/obj/project.nuget.cache index 407b64b..8575554 100644 --- a/obj/project.nuget.cache +++ b/obj/project.nuget.cache @@ -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": [] } \ No newline at end of file diff --git a/obj/project.packagespec.json b/obj/project.packagespec.json index e75f790..e09a74e 100644 --- a/obj/project.packagespec.json +++ b/obj/project.packagespec.json @@ -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"}} \ No newline at end of file +"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"}} \ No newline at end of file diff --git a/obj/rider.project.model.nuget.info b/obj/rider.project.model.nuget.info index 898ea70..3697127 100644 --- a/obj/rider.project.model.nuget.info +++ b/obj/rider.project.model.nuget.info @@ -1 +1 @@ -17515302868997761 \ No newline at end of file +17520917705843408 \ No newline at end of file diff --git a/obj/rider.project.restore.info b/obj/rider.project.restore.info index 898ea70..041aab5 100644 --- a/obj/rider.project.restore.info +++ b/obj/rider.project.restore.info @@ -1 +1 @@ -17515302868997761 \ No newline at end of file +17520918778041105 \ No newline at end of file