private void Handle(Command command, AnschriftAendern aktion)
 {
     var repo = new KundeRepository(aktion.KundenId, _eventStore);
     var kunde = repo.Retrieve();
     kunde.AnschriftAendern(aktion.NeueAnschrift);
     repo.Commit();
 }
 private void Handle(Command command, KundeErfassen aktion)
 {
     var repo = new KundeRepository(aktion.KundenId, _eventStore);
     var kunde = repo.Retrieve();
     kunde.Erfassen(aktion.Name, aktion.Anschrift);
     repo.Commit();
 }
        private void Handle(CommandEnvelope commandEnvelope, AuftragErfassen aktion, UnitOfWork unitOfWork)
        {
            var auftrag = new AuftragRepository(unitOfWork).Retrieve(aktion.AuftragsId);
            var kunde = new KundeRepository(unitOfWork).Retrieve(aktion.Kunde);

            auftrag.Erfassen(aktion.AuftragsId, aktion.Produkt, aktion.Menge, kunde);
        }
        private void Handle(Command command, AuftragErfassen aktion)
        {
            var repo = new AuftragRepository(aktion.AuftragsId, _eventStore);
            var auftrag = repo.Retrieve();

            var produktrepo = new ProduktRepository(aktion.Produkt, _eventStore);
            var kunderepo = new KundeRepository(aktion.Kunde, _eventStore);

            auftrag.Erfassen(produktrepo.Retrieve(), aktion.Menge, kunderepo.Retrieve());

            produktrepo.Commit();
            repo.Commit();
        }
 private void Handle(CommandEnvelope commandEnvelope, AnschriftAendern aktion, UnitOfWork unitOfWork)
 {
     try
     {
         var kunde = new KundeRepository(unitOfWork).Retrieve(aktion.KundenId);
         kunde.AnschriftAendern(aktion.NeueAnschrift);
         unitOfWork.Commit();
     }
     catch (Exception ex)
     {
         // Protokollieren
     }
 }
 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, 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));
         });
 }