public void Entferne(Abrechnung abrechnung, Einkauf einkauf) { abrechnung.Einkäufe.Remove(einkauf); einkauf.Abrechnung = null; BearbeiteAbrechnung(abrechnung); Einkaufsteuerung.BearbeiteEinkauf(einkauf); }
public void BearbeitePosition(Einkaufsposition position) { if (!Einkaufsteuerung.IstLöschbar(position.Einkauf)) { throw new InvalidOperationException("Die Position dieses Einkaufs kann nicht mehr bearbeitet werden."); } Kontext.SaveChanges(); EinkaufspositionVerändert?.Invoke(position); }
public void LöschePosition(Einkaufsposition position, bool erzwinge = false) { if (!erzwinge && !Einkaufsteuerung.IstLöschbar(position.Einkauf)) { throw new InvalidOperationException("Aus diesem Einkauf kann keine Position mehr gelöscht werden."); } Kontext.Einkaufspositionen.Remove(position); // Nebeneffekt: Wird aus Einkauf gelöscht Kontext.SaveChanges(); EinkaufspositionGelöscht?.Invoke(position); }
public void FügeHinzu(Abrechnung abrechnung, Einkauf einkauf) { using (var transaktion = Kontext.Database.BeginOrReuseTransaction()) { abrechnung.Einkäufe.Add(einkauf); einkauf.Abrechnung = abrechnung; FügeHinzu(abrechnung, einkauf.Positionen.Select(p => p.Kastengröße.Produkt).Distinct().ToList()); BearbeiteAbrechnung(abrechnung); Einkaufsteuerung.BearbeiteEinkauf(einkauf); transaktion?.Commit(); } }
public void LöschePositionen(ICollection <Einkaufsposition> positionen, bool erzwinge = false) { if (!erzwinge && positionen.Any(p => !Einkaufsteuerung.IstLöschbar(p.Einkauf))) { throw new InvalidOperationException("Aus diesem Einkauf kann keine Position mehr gelöscht werden."); } Kontext.Einkaufspositionen.RemoveRange(positionen); Kontext.SaveChanges(); foreach (var position in positionen) { EinkaufspositionGelöscht?.Invoke(position); } }
public void Entferne(Abrechnung abrechnung, ICollection <Einkauf> einkäufe) { using (var transaktion = Kontext.Database.BeginOrReuseTransaction()) { foreach (var einkauf in einkäufe) { abrechnung.Einkäufe.Remove(einkauf); einkauf.Abrechnung = null; Einkaufsteuerung.BearbeiteEinkauf(einkauf); } BearbeiteAbrechnung(abrechnung); transaktion?.Commit(); } }
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); }
public void FügeHinzu(Abrechnung abrechnung, ICollection <Einkauf> einkäufe) { using (var transaktion = Kontext.Database.BeginOrReuseTransaction()) { abrechnung.Einkäufe.AddRange(einkäufe); foreach (var einkauf in einkäufe) { einkauf.Abrechnung = abrechnung; Einkaufsteuerung.BearbeiteEinkauf(einkauf); } FügeHinzu(abrechnung, einkäufe.SelectMany(e => e.Positionen).Select(p => p.Kastengröße.Produkt).Distinct().ToList()); BearbeiteAbrechnung(abrechnung); transaktion?.Commit(); } }
public void NeuePosition(Einkaufsposition position, Einkauf einkauf) { if (!Einkaufsteuerung.IstLöschbar(einkauf)) { throw new InvalidOperationException("Zu diesem Einkauf kann keine Position mehr hinzugefügt werden."); } position.Einkauf = einkauf; einkauf.Positionen.Add(position); if (einkauf.Abrechnung != null && !einkauf.Abrechnung.Produkte.Contains(position.Kastengröße.Produkt)) { Abrechnungssteuerung.FügeHinzu(einkauf.Abrechnung, position.Kastengröße.Produkt); } Kontext.SaveChanges(); EinkaufspositionHinzugefügt?.Invoke(position); }