private void Handle(Command command, NachbestellungBeauftragen aktion)
 {
     var repo = new ProduktRepository(aktion.ProduktId, _eventStore);
     var produkt = repo.Retrieve();
     produkt.Nachbestellen(aktion.BestellteMenge);
     repo.Commit();
 }
 private void Handle(Command command, WareneingangVerbuchen aktion)
 {
     var repo = new ProduktRepository(aktion.ProduktId, _eventStore);
     var produkt = repo.Retrieve();
     produkt.Wareneingang();
     repo.Commit();
 }
 private void Handle(Command command, ProduktEinlisten aktion)
 {
     var repo = new ProduktRepository(aktion.ProduktId, _eventStore);
     var produkt = repo.Retrieve();
     produkt.Einlisten(aktion.Bezeichnung);
     repo.Commit();
 }
        private void Handle(Command command, AuftragAusfuehren aktion)
        {
            var repo = new AuftragRepository(aktion.AuftragId, _eventStore);
            var auftrag = repo.Retrieve();

            var produktrepo = new ProduktRepository(auftrag.Produkt, _eventStore);
            auftrag.Ausfuehren(produktrepo.Retrieve());

            produktrepo.Commit();
            repo.Commit();
        }
        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(Command command, AutomatischeNachbestellungenDeaktivieren aktion)
 {
     var repo = new ProduktRepository(aktion.ProduktId, _eventStore);
     var produkt = repo.Retrieve();
     produkt.AutomatischeNachbestellungenDeaktivieren();
     repo.Commit();
 }
 private void Handle(Command command, MindestVerfuegbarkeitDefinieren aktion)
 {
     var repo = new ProduktRepository(aktion.ProduktId, _eventStore);
     var produkt = repo.Retrieve();
     produkt.MindestVerfuegbarkeitDefinieren(aktion.MindestVerfuegbarkeit, aktion.MindestBestellmenge);
     repo.Commit();
 }
 private void Handle(CommandEnvelope commandEnvelope, ProduktEinlisten aktion, UnitOfWork unitOfWork)
 {
     var produkt = new ProduktRepository(unitOfWork).Retrieve(aktion.ProduktId);
     produkt.Einlisten(aktion.Bezeichnung);
 }
 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));
         });
 }