MailWindow: Add try/catch block around document creation

This commit is contained in:
2024-03-02 18:57:03 +01:00
parent 9139557cc4
commit 376af72700

View File

@ -427,41 +427,46 @@ namespace Elwig.Windows {
var memberDocs = recipients.Select(m => new { var memberDocs = recipients.Select(m => new {
Member = m, Member = m,
Docs = docs.SelectMany<SelectedDoc, GeneratedDoc>(doc => { Docs = docs.SelectMany<SelectedDoc, GeneratedDoc>(doc => {
if (doc.Type == DocType.Custom) { try {
return [new GeneratedDoc((string)doc.Details!)]; if (doc.Type == DocType.Custom) {
} else if (doc.Type == DocType.MemberDataSheet) { return [new GeneratedDoc((string)doc.Details!)];
return [new GeneratedDoc(new MemberDataSheet(m, Context))]; } else if (doc.Type == DocType.MemberDataSheet) {
} else if (doc.Type == DocType.DeliveryConfirmation) { return [new GeneratedDoc(new MemberDataSheet(m, Context))];
var details = ((int, bool))doc.Details!; } else if (doc.Type == DocType.DeliveryConfirmation) {
var year = details.Item1; var details = ((int, bool))doc.Details!;
var include = details.Item2; var year = details.Item1;
DeliveryConfirmationDeliveryData data; var include = details.Item2;
if (dcData[year].TryGetValue(m.MgNr, out var d)) { DeliveryConfirmationDeliveryData data;
data = d; if (dcData[year].TryGetValue(m.MgNr, out var d)) {
} else if (include) { data = d;
data = DeliveryConfirmationDeliveryData.CreateEmpty(year, m); } else if (include) {
} else { data = DeliveryConfirmationDeliveryData.CreateEmpty(year, m);
return []; } else {
} return [];
return [new GeneratedDoc(new DeliveryConfirmation(Context, year, m, data))]; }
} else if (doc.Type == DocType.CreditNote) { return [new GeneratedDoc(new DeliveryConfirmation(Context, year, m, data))];
var details = ((int, int))doc.Details!; } else if (doc.Type == DocType.CreditNote) {
var year = details.Item1; var details = ((int, int))doc.Details!;
var avnr = details.Item2; var year = details.Item1;
var data = cnData[(year, avnr)]; var avnr = details.Item2;
try { var data = cnData[(year, avnr)];
return [new GeneratedDoc(new CreditNote( try {
return [new GeneratedDoc(new CreditNote(
Context, data.Item2[m.MgNr], data.Item1[m.MgNr], Context, data.Item2[m.MgNr], data.Item1[m.MgNr],
data.Item3.ConsiderContractPenalties, data.Item3.ConsiderContractPenalties,
data.Item3.ConsiderTotalPenalty, data.Item3.ConsiderTotalPenalty,
data.Item3.ConsiderAutoBusinessShares, data.Item3.ConsiderAutoBusinessShares,
Context.GetMemberUnderDelivery(year, m.MgNr).GetAwaiter().GetResult() Context.GetMemberUnderDelivery(year, m.MgNr).GetAwaiter().GetResult()
))]; ))];
} catch (Exception) { } catch (Exception) {
return []; return [];
}
} else {
throw new NotImplementedException("Invalid DocType");
} }
} else { } catch (Exception exc) {
throw new NotImplementedException("Invalid DocType"); MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
return [];
} }
}).ToList() }).ToList()
}).ToList(); }).ToList();