public void LöscheEinkauf(Einkauf einkauf) { if (!IstLöschbar(einkauf)) { throw new InvalidOperationException("Dieser Einkauf ist nicht löschbar, er ist Teil einer schon abgerechneten Abrechnung."); } using (var transaktion = Kontext.Database.BeginOrReuseTransaction()) { if (einkauf.Abrechnung != null) { Abrechnungssteuerung.Entferne(einkauf.Abrechnung, einkauf); } Einkaufspositionssteuerung.LöschePositionen(einkauf.Positionen.ToList(), erzwinge: true); var überweisung = einkauf.Überweisung; Überweisungssteuerung.StorniereÜberweisung(überweisung, erzwinge: true); einkauf.Überweisung = null; Kontext.Einkäufe.Remove(einkauf); Kontext.SaveChanges(); transaktion?.Commit(); } EinkaufGelöscht?.Invoke(einkauf); }
public Datenbanksteuerung() : base(null) { kontext = null; abrechnungssteuerung = new Abrechnungssteuerung(this); benutzersteuerung = new Benutzersteuerung(this); einkaufsteuerung = new Einkaufsteuerung(this); einkaufspositionssteuerung = new Einkaufspositionssteuerung(this); kastengrößensteuerung = new Kastengrößensteuerung(this); kontosteuerung = new Kontosteuerung(this); produktsteuerung = new Produktsteuerung(this); überweisungssteuerung = new Überweisungssteuerung(this); verbrauchsteuerung = new Verbrauchsteuerung(this); verkaufsproduktsteuerung = new Verkaufsproduktsteuerung(this); zahlungssteuerung = new Zahlungssteuerung(this); }