private async Task RecalcTermine(ParameterSavedEventArgs e) { try { if (e.SettingType != typeof(KontingentDigitalisierungsauftraegeSetting)) { return; } DigitalisierungsKategorie kategorie; var newKontingent = e.Parameter.Value.ToString(); var name = e.Parameter.Name .Split(new[] { '.' }, StringSplitOptions.RemoveEmptyEntries) .LastOrDefault(); switch (name) { case nameof(KontingentDigitalisierungsauftraegeSetting.Oeffentlichkeit): kategorie = DigitalisierungsKategorie.Oeffentlichkeit; break; case nameof(KontingentDigitalisierungsauftraegeSetting.Intern): kategorie = DigitalisierungsKategorie.Intern; break; case nameof(KontingentDigitalisierungsauftraegeSetting.Amt): kategorie = DigitalisierungsKategorie.Amt; break; case nameof(KontingentDigitalisierungsauftraegeSetting.DDS): kategorie = DigitalisierungsKategorie.Forschungsgruppe; break; case nameof(KontingentDigitalisierungsauftraegeSetting.Gesuche): kategorie = DigitalisierungsKategorie.Gesuch; break; default: Log.Warning("Unbekannter Kontingentparameter {PARAMETER}", e.Parameter.Name); return; } var parser = new DigitalisierungsKontingentParser(); var kontingent = parser.Parse(newKontingent); Log.Information( "Digitalisierungstermine für Kategorie {KATEGORIE} werden neu berechnet, da sich der Parameter für das Kontingent geändert hat.", kategorie.ToString()); await terminManager.RecalcTermine(kategorie, kontingent); Log.Information("Neuberechnung für Digitalisierungstermine der Kategorie {KATEGORIE} abgeschlossen.", kategorie.ToString()); } catch (Exception ex) { Log.Error(ex, "Fehler bei der Neuberechnung der Digitalisierungstermine der Kategorie {KATEGORIE}.", e?.Parameter?.Value); } }
private async void HelperOnParameterSaved(object sender, ParameterSavedEventArgs e) { await RecalcTermine(e); }