private void Handle(CommandEnvelope commandEnvelope, ArtikelAusWarenkorbEntfernen aktion, UnitOfWork unitOfWork)
 {
     var warenkorb = new WarenkorbRepository(unitOfWork).Retrieve(aktion.Warenkorb);
     warenkorb.Entfernen(aktion.Zeile);
 }
 private void Handle(CommandEnvelope commandEnvelope, ArtikelZuWarenkorbHinzufuegen aktion, UnitOfWork unitOfWork)
 {
     var warenkorb = new WarenkorbRepository(unitOfWork).Retrieve(aktion.Warenkorb);
     warenkorb.FuegeHinzu(aktion.Produkt, aktion.Menge);
 }
 private void Handle(CommandEnvelope commandEnvelope, WarenkorbBestellen aktion, UnitOfWork unitOfWork)
 {
     var warenkorb = new WarenkorbRepository(unitOfWork).Retrieve(aktion.Warenkorb);
     var auftrags_repo = new AuftragRepository(unitOfWork);
     var produkt_repo = new ProduktRepository(unitOfWork);
     var kunde_repo = new KundeRepository(unitOfWork);
     warenkorb.Bestellen((produkt, menge, kunde) =>
         {
             var id = Guid.NewGuid();
             var auftrag = auftrags_repo.Retrieve(id);
             auftrag.Erfassen(id, produkt, menge, kunde_repo.Retrieve(kunde));
         });
 }
 private void Handle(CommandEnvelope commandEnvelope, KundeErfassen aktion, UnitOfWork unitOfWork)
 {
     var kunde = new KundeRepository(unitOfWork).Retrieve(aktion.KundenId);
     var warenkorb = new WarenkorbRepository(unitOfWork).Retrieve(Guid.NewGuid());
     kunde.Erfassen(aktion.Name, aktion.Anschrift, warenkorb);
 }
 private void Handle(CommandEnvelope commandEnvelope, WarenkorbLeeren aktion, UnitOfWork unitOfWork)
 {
     var warenkorb = new WarenkorbRepository(unitOfWork).Retrieve(aktion.Warenkorb);
     warenkorb.Leeren();
 }