public void Entferne(Abrechnung abrechnung, Einkauf einkauf)
 {
     abrechnung.Einkäufe.Remove(einkauf);
     einkauf.Abrechnung = null;
     BearbeiteAbrechnung(abrechnung);
     Einkaufsteuerung.BearbeiteEinkauf(einkauf);
 }
 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 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 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();
            }
        }