diff --git a/Tasks/PdfBuilder.cs b/Tasks/PdfBuilder.cs index 1179e55..6940f70 100644 --- a/Tasks/PdfBuilder.cs +++ b/Tasks/PdfBuilder.cs @@ -121,17 +121,18 @@ public class PdfBuilder } // national addresses - for (var i = 0; i < addressSet.KasPersons.Count; i++) + foreach (var person in addressSet.KasPersons + .Where(person => person.IsGermany()) + .OrderBy(person => person.used_plz)) { string senderLineID = senderLine; - if (!addressSet.KasPersons[i].IsGermany()) continue; - var addr = AddressCreator.CreateFinalMarkdownString(addressSet.KasPersons[i].id); + var addr = AddressCreator.CreateFinalMarkdownString(person.id); if (string.IsNullOrWhiteSpace(addr)) continue; if (pvst) senderLineID += $"**PvSt, DP AG, Entgelt bezahlt, ZKZ {Settings._instance.pdfExport.rsZKZ}**\n"; - if (addressSet.KasPersons[i].refsid != null || addressSet.KasPersons[i].refsid != 0) - senderLineID += $"ID: {addressSet.KasPersons[i].refsid}\n"; + if (person.refsid != null || person.refsid != 0) + senderLineID += $"ID: {person.refsid}\n"; else senderLineID += "\n"; if (!string.IsNullOrEmpty(senderLineID)) @@ -141,17 +142,19 @@ public class PdfBuilder } // international addresses - for (var i = 0; i < addressSet.KasPersons.Count; i++) + foreach (var person in addressSet.KasPersons + .Where(person => !person.IsGermany()) + .OrderBy(person => person.land) + .ThenBy(person => person.used_plz)) { string senderLineID = senderLine; - if (addressSet.KasPersons[i].IsGermany()) continue; - var addr = AddressCreator.CreateFinalMarkdownString(addressSet.KasPersons[i].id); + var addr = AddressCreator.CreateFinalMarkdownString(person.id); if (string.IsNullOrWhiteSpace(addr)) continue; if (pvst) senderLineID += $"**PvSt, DP AG, Entgelt bezahlt, ZKZ {Settings._instance.pdfExport.rsZKZ}**\n"; - if (addressSet.KasPersons[i].refsid != null || addressSet.KasPersons[i].refsid != 0) - senderLineID += $"ID: {addressSet.KasPersons[i].refsid}\n"; + if (person.refsid != null || person.refsid != 0) + senderLineID += $"ID: {person.refsid}\n"; else senderLineID += "\n"; if (!string.IsNullOrEmpty(senderLineID))