[chore:] added ID to addres-sets (yes, there was no -_-)

This commit is contained in:
Elias Fierke
2025-10-09 10:22:22 +02:00
parent 63d430dd72
commit af8a74c2c3
4 changed files with 272 additions and 239 deletions

View File

@@ -1,25 +1,43 @@
using System;
using System.Collections.Generic; using System.Collections.Generic;
namespace Logof_Client; namespace Logof_Client;
public class KasAddressList public class KasAddressList //Address-Set
{ {
public List<KasPersonError> errors = new();
public List<KasPerson> KasPersons; public List<KasPerson> KasPersons;
public KasAddressList(string name) public KasAddressList(string name)
{ {
KasPersons = new List<KasPerson>(); KasPersons = new List<KasPerson>();
Name = name; Name = name;
var highest = 0;
foreach (var k in Settings._instance.addressSets.addresses)
if (highest <= k.ID)
highest = k.ID + 1;
ID = highest;
} }
public string Name { get; set; } = "Neues Address-Set"; public string Name { get; set; } = "Neues Address-Set";
public int owner_id { get; set; } public int owner_id { get; set; }
public int ID { get; }
public void SetOwner(int owner_id) public void SetOwner(int owner_id)
{ {
this.owner_id = owner_id; this.owner_id = owner_id;
} }
public void UpdateErrorList(List<(int, List<AddressCheck.ErrorTypes>, List<AddressCheck.WarningTypes>)> errorList)
{
errors.Clear();
foreach (var error in errorList) errors.Add(new KasPersonError(error));
}
public static int GetIDByAddressSetListItem(string listItemName)
{
var id = listItemName.Split(" - ")[0];
return int.Parse(id);
}
} }
public class KasPerson public class KasPerson
@@ -134,32 +152,34 @@ public class KasPersonError
public KasPersonError((int, List<AddressCheck.ErrorTypes>, List<AddressCheck.WarningTypes>) single_result) public KasPersonError((int, List<AddressCheck.ErrorTypes>, List<AddressCheck.WarningTypes>) single_result)
{ {
refsid = single_result.Item1; refsid = single_result.Item1;
try errors = single_result.Item2;
{ warnings = single_result.Item3;
foreach (var err in single_result.Item2) errors += err + ", "; // try
errors = errors.Trim(); // {
errors = errors.TrimEnd(','); // foreach (var err in single_result.Item2) errors += err + ", ";
} // errors = errors.Trim();
catch // errors = errors.TrimEnd(',');
{ // }
} // catch
// {
try // }
{ //
if (single_result.Item3 != null) // try
{ // {
foreach (var err in single_result.Item3) warnings += err + ", "; // if (single_result.Item3 != null)
warnings = warnings.Trim(); // {
warnings = warnings.TrimEnd(','); // foreach (var err in single_result.Item3) warnings += err + ", ";
} // warnings = warnings.Trim();
} // warnings = warnings.TrimEnd(',');
catch (Exception e) // }
{ // }
Console.WriteLine(e.Message); // catch (Exception e)
} // {
// Console.WriteLine(e.Message);
// }
} }
public int refsid { get; set; } public int refsid { get; set; }
public string errors { get; set; } = ""; public List<AddressCheck.ErrorTypes> errors { get; set; } = new();
public string warnings { get; set; } = ""; public List<AddressCheck.WarningTypes> warnings { get; set; } = new();
} }

View File

@@ -22,7 +22,7 @@ public partial class MainWindow : Window
Settings.Load(); Settings.Load();
} }
private async void StartAddressCheck(KasAddressList addresses) private async void StartAddressCheck(int addresSetID)
{ {
//var addresses = DataImport.ImportKasAddressList(path); // Ihr Code hier //var addresses = DataImport.ImportKasAddressList(path); // Ihr Code hier
@@ -31,13 +31,18 @@ public partial class MainWindow : Window
progressWindow.Show(_instance); progressWindow.Show(_instance);
var processor = new AddressCheck(progressWindow); var processor = new AddressCheck(progressWindow);
var result = await processor.Perform(addresses); var result = await processor.Perform(addresSetID);
// foreach (var item in result)
// {
// }
progressWindow.Close(); progressWindow.Close();
new ResultWindow(result, addresses).Show(); new ResultWindow(result, addresSetID).Show();
//await MessageBox.Show(_instance, $"{result.Count} Einträge fehlerhaft.", "Fertig"); //await MessageBox.Show(_instance, $"{result.Count} Einträge fehlerhaft.", "Fertig");
} }
@@ -115,12 +120,12 @@ public partial class MainWindow : Window
return; return;
} }
var set = new KasAddressList(""); //var set = new KasAddressList("");
foreach (var adset in Settings._instance.addressSets.addresses) //foreach (var adset in Settings._instance.addressSets.addresses)
if (adset.Name == LstCustomerAdressSets.SelectedItem.ToString()) //if (adset.ID == KasAddressList.GetIDByAddressSetListItem(LstCustomerAdressSets.SelectedItem.ToString()))
set = adset; StartAddressCheck(KasAddressList.GetIDByAddressSetListItem(LstCustomerAdressSets.SelectedItem.ToString()));
StartAddressCheck(set);
// var result = DataImport.ImportKasAddressList(filePath); // var result = DataImport.ImportKasAddressList(filePath);
// if (result.Item1) // if (result.Item1)
// { // {
@@ -379,7 +384,7 @@ public partial class MainWindow : Window
foreach (var k in Settings._instance.addressSets.addresses) foreach (var k in Settings._instance.addressSets.addresses)
foreach (var customer in Settings._instance.customers.customers) foreach (var customer in Settings._instance.customers.customers)
if (customer.ID == k.owner_id && customer.ID == customer_id) if (customer.ID == k.owner_id && customer.ID == customer_id)
LstCustomerAdressSets.Items.Add(k.Name); LstCustomerAdressSets.Items.Add(k.ID + " - " + k.Name);
} }
private void LstCustomerAdressSets_OnSelectionChanged(object? sender, SelectionChangedEventArgs e) private void LstCustomerAdressSets_OnSelectionChanged(object? sender, SelectionChangedEventArgs e)

View File

@@ -11,25 +11,25 @@ public partial class ResultWindow : Window
{ {
public List<CheckBox> errortypecheckboxes = new(); public List<CheckBox> errortypecheckboxes = new();
public KasAddressList ur_addresses = new("Ergebnis_" + DateTime.Now.ToString("ddMMyy_HHmmss")); public KasAddressList ur_addresses = new("Ergebnis_" + DateTime.Now.ToString("ddMMyy_HHmmss"));
public List<(int, List<AddressCheck.ErrorTypes>, List<AddressCheck.WarningTypes>)> ur_result; public List<KasPersonError> ur_result;
public List<CheckBox> warningtypecheckboxes = new(); public List<CheckBox> warningtypecheckboxes = new();
public ResultWindow(List<(int, List<AddressCheck.ErrorTypes>, List<AddressCheck.WarningTypes>)> result, public ResultWindow(List<KasPersonError> result,
KasAddressList ur_addresses) int addressSetID)
{ {
InitializeComponent(); InitializeComponent();
ur_result = result; ur_result = result;
this.ur_addresses = ur_addresses; ur_addresses = ur_addresses;
Load(result); Load(result);
//ViewSingle(200552426); //ViewSingle(200552426);
} }
private void GenerateView(List<(int, List<AddressCheck.ErrorTypes>, List<AddressCheck.WarningTypes>)> result) private void GenerateView(List<KasPersonError> result)
{ {
var errors = new List<KasPersonError>(); // var errors = new List<KasPersonError>();
foreach (var single_result in result) errors.Add(new KasPersonError(single_result)); //foreach (var single_result in result) errors.Add(single_result);
LblResultCount.Content = $"{errors.Count}/{ur_result.Count} Ergebnisse"; LblResultCount.Content = $"{result.Count}/{ur_result.Count} Ergebnisse";
DgResult.ItemsSource = errors; DgResult.ItemsSource = result;
} }
private void ViewSingle(int refsid) private void ViewSingle(int refsid)
@@ -62,18 +62,18 @@ public partial class ResultWindow : Window
} }
} }
private void Load(List<(int, List<AddressCheck.ErrorTypes>, List<AddressCheck.WarningTypes>)> result) private void Load(List<KasPersonError> result)
{ {
var knownErrors = new List<AddressCheck.ErrorTypes>(); var knownErrors = new List<AddressCheck.ErrorTypes>();
var knownWarnings = new List<AddressCheck.WarningTypes>(); var knownWarnings = new List<AddressCheck.WarningTypes>();
foreach (var single_result in result) foreach (var single_result in result)
{ {
foreach (var errtyp in single_result.Item2) foreach (var errtyp in single_result.errors)
if (!knownErrors.Contains(errtyp)) if (!knownErrors.Contains(errtyp))
knownErrors.Add(errtyp); knownErrors.Add(errtyp);
foreach (var wartyp in single_result.Item3) foreach (var wartyp in single_result.warnings)
if (!knownWarnings.Contains(wartyp)) if (!knownWarnings.Contains(wartyp))
knownWarnings.Add(wartyp); knownWarnings.Add(wartyp);
} }
@@ -108,7 +108,7 @@ public partial class ResultWindow : Window
private void UpdateFilter() private void UpdateFilter()
{ {
var temp_result = new List<(int, List<AddressCheck.ErrorTypes>, List<AddressCheck.WarningTypes>)>(); var temp_result = new List<KasPersonError>();
var checked_types = new List<AddressCheck.ErrorTypes>(); var checked_types = new List<AddressCheck.ErrorTypes>();
var checked_types_war = new List<AddressCheck.WarningTypes>(); var checked_types_war = new List<AddressCheck.WarningTypes>();
foreach (var cb in errortypecheckboxes) foreach (var cb in errortypecheckboxes)
@@ -123,21 +123,21 @@ public partial class ResultWindow : Window
foreach (var sres in ur_result) foreach (var sres in ur_result)
{ {
foreach (var err in sres.Item2) foreach (var err in sres.errors)
if (checked_types.Contains(err) && !temp_result.Contains(sres)) if (checked_types.Contains(err) && !temp_result.Contains(sres))
temp_result.Add(sres); temp_result.Add(sres);
foreach (var war in sres.Item3) foreach (var war in sres.warnings)
if (checked_types_war.Contains(war) && !temp_result.Contains(sres)) if (checked_types_war.Contains(war) && !temp_result.Contains(sres))
temp_result.Add(sres); temp_result.Add(sres);
} }
var errors = new List<KasPersonError>(); //var errors = new List<KasPersonError>();
foreach (var single_result in temp_result) errors.Add(new KasPersonError(single_result)); //foreach (var single_result in temp_result) errors.Add(new KasPersonError(single_result));
LblResultCount.Content = $"{errors.Count}/{ur_result.Count} Ergebnisse"; LblResultCount.Content = $"{temp_result.Count}/{ur_result.Count} Ergebnisse";
DgResult.ItemsSource = errors; DgResult.ItemsSource = temp_result;
} }
private void BtnShowSelected_OnClick(object? sender, RoutedEventArgs e) private void BtnShowSelected_OnClick(object? sender, RoutedEventArgs e)

View File

@@ -37,15 +37,18 @@ public class AddressCheck
_progress = progressWindow; _progress = progressWindow;
} }
public async Task<List<(int, List<ErrorTypes>, List<WarningTypes>)>> Perform(KasAddressList addresses) public async Task<List<KasPersonError>> Perform(int id)
{ {
var failed_refsids = new List<(int, List<ErrorTypes>, List<WarningTypes>)>(); foreach (var adset in Settings._instance.addressSets.addresses)
var total = addresses.KasPersons.Count; if (adset.ID == id)
{
var failed_refsids = new List<KasPersonError>();
var total = adset.KasPersons.Count;
var current = 0; var current = 0;
await Task.Run(async () => await Task.Run(async () =>
{ {
foreach (var person in addresses.KasPersons) foreach (var person in adset.KasPersons)
{ {
var errors = new List<ErrorTypes>(); var errors = new List<ErrorTypes>();
var warnings = new List<WarningTypes>(); var warnings = new List<WarningTypes>();
@@ -173,9 +176,9 @@ public class AddressCheck
if (!string.IsNullOrWhiteSpace(person.abteilung)) address_component_count++; if (!string.IsNullOrWhiteSpace(person.abteilung)) address_component_count++;
// Double-Refsid or DoubleAddresses // Double-Refsid or DoubleAddresses
foreach (var person2 in addresses.KasPersons) foreach (var person2 in adset.KasPersons)
{ {
if (addresses.KasPersons.IndexOf(person) == addresses.KasPersons.IndexOf(person2)) continue; if (adset.KasPersons.IndexOf(person) == adset.KasPersons.IndexOf(person2)) continue;
if (person.refsid == person2.refsid) // trifft auf Patch-Addressen nicht zu if (person.refsid == person2.refsid) // trifft auf Patch-Addressen nicht zu
{ {
@@ -213,7 +216,7 @@ public class AddressCheck
if (hasFaults) if (hasFaults)
lock (failed_refsids) lock (failed_refsids)
{ {
failed_refsids.Add((person.refsid, errors, warnings)); failed_refsids.Add(new KasPersonError((person.refsid, errors, warnings)));
} }
// Fortschritt aktualisieren // Fortschritt aktualisieren
@@ -228,6 +231,11 @@ public class AddressCheck
}); });
} }
}); });
adset.errors = failed_refsids;
Settings.Save();
return failed_refsids; return failed_refsids;
} }
return null;
}
} }