[struc:] moved KasPersonError-Instance from addressset to KasPerson-Instance
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Avalonia.Threading;
|
||||
@@ -35,24 +36,32 @@ public class AddressCheck
|
||||
_progress = progressWindow;
|
||||
}
|
||||
|
||||
public async Task<List<KasPersonError>> Perform(int id)
|
||||
public async Task<List<KasPerson>> Perform(int id)
|
||||
{
|
||||
foreach (var adset in Settings._instance.addressSets.addresses)
|
||||
if (adset.ID == id)
|
||||
// Find the index of the address set with the given id
|
||||
var adset_index = -1;
|
||||
for (var i = 0; i < Settings._instance.addressSets.addresses.Count; i++)
|
||||
if (Settings._instance.addressSets.addresses[i].ID == id)
|
||||
{
|
||||
var failed_refsids = new List<KasPersonError>();
|
||||
var total = adset.KasPersons.Count;
|
||||
var current = 0;
|
||||
adset_index = i;
|
||||
break;
|
||||
}
|
||||
|
||||
await Task.Run(async () =>
|
||||
{
|
||||
foreach (var person in adset.KasPersons)
|
||||
{
|
||||
var errors = new List<ErrorTypes>();
|
||||
var warnings = new List<WarningTypes>();
|
||||
var hasFaults = false;
|
||||
if (adset_index == -1) return new List<KasPerson>();
|
||||
|
||||
var address_component_count = 2; // cause anrede and name are first
|
||||
var adset = Settings._instance.addressSets.addresses[adset_index];
|
||||
var total = adset.KasPersons.Count;
|
||||
var current = 0;
|
||||
|
||||
await Task.Run(async () =>
|
||||
{
|
||||
foreach (var person in adset.KasPersons)
|
||||
{
|
||||
var errors = new List<ErrorTypes>();
|
||||
var warnings = new List<WarningTypes>();
|
||||
var hasFaults = false;
|
||||
|
||||
var address_component_count = 2; // cause anrede and name are first
|
||||
|
||||
// PLZ-Prüfung
|
||||
if (person.plz == "" || person.plz == null)
|
||||
@@ -92,13 +101,12 @@ public class AddressCheck
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if (!AddressCreator.CheckPLZ(person.pplz, person.land))
|
||||
{
|
||||
hasFaults = true;
|
||||
errors.Add(ErrorTypes.PPlzNotUsable);
|
||||
}
|
||||
|
||||
|
||||
// if ((person.pplz < 10000 && string.IsNullOrWhiteSpace(person.land)) ||
|
||||
// (person.pplz < 10000 && person.land == "GER") ||
|
||||
// (person.pplz < 10000 && person.land == "DE"))
|
||||
@@ -224,9 +232,13 @@ public class AddressCheck
|
||||
}
|
||||
|
||||
if (hasFaults)
|
||||
lock (failed_refsids)
|
||||
lock (Settings._instance.addressSets.addresses)
|
||||
{
|
||||
failed_refsids.Add(new KasPersonError((person.refsid, errors, warnings)));
|
||||
// Directly set PersonError in the address set
|
||||
var person_index = adset.KasPersons.IndexOf(person);
|
||||
if (person_index >= 0)
|
||||
Settings._instance.addressSets.addresses[adset_index].KasPersons[person_index].PersonError =
|
||||
new KasPersonError((errors, warnings));
|
||||
}
|
||||
|
||||
// Fortschritt aktualisieren
|
||||
@@ -241,11 +253,12 @@ public class AddressCheck
|
||||
});
|
||||
}
|
||||
});
|
||||
adset.errors = failed_refsids;
|
||||
Settings.Save();
|
||||
return failed_refsids;
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
Settings.Save();
|
||||
|
||||
// Return only the persons with errors from the address set
|
||||
return Settings._instance.addressSets.addresses[adset_index].KasPersons
|
||||
.Where(p => p.PersonError != null)
|
||||
.ToList();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user