コード例 #1
0
        private void Handle(CommandEnvelope commandEnvelope, AuftragAusfuehren aktion, UnitOfWork unitOfWork)
        {
            var auftrag = new AuftragRepository(unitOfWork).Retrieve(aktion.AuftragId);
            var produkt = new LagerRepository(unitOfWork).Retrieve(aktion.LagerId, auftrag.Produkt);

            auftrag.Ausfuehren(produkt);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
 private void Handle(CommandEnvelope commandEnvelope, AnschriftAendern aktion, UnitOfWork unitOfWork)
 {
     var repo = new KundenRepository(unitOfWork);
     var kunde = repo.Retrieve(aktion.KundenId).Kunden.Single();
     if (kunde.Anschrift != aktion.NeueAnschrift)
     {
         kunde.Anschrift = aktion.NeueAnschrift;
         repo.Update(kunde);
     }
 }
コード例 #4
0
        private void Handle(CommandEnvelope commandEnvelope, WareneingangVerbuchen aktion, UnitOfWork unitOfWork)
        {
            var repo = new LagerbestandRepository(unitOfWork);
            var liste = repo.Retrieve(aktion.LagerId, aktion.ProduktId);
            if (liste.Bestand.Count == 0) throw new VorgangNichtAusgefuehrt("Wareneingang ohne Bestellung, das darf nicht sein...");

            var posten = liste.Bestand.Single();
            if (posten.MengeImZulauf == 0) throw new VorgangNichtAusgefuehrt("Wareneingang ohne Bestellung, das darf nicht sein...");

            repo.Set_Zulauf(aktion.LagerId, aktion.ProduktId, 0);
            repo.Set_Bestand(aktion.LagerId, aktion.ProduktId, posten.LagerBestand + posten.MengeImZulauf);
        }
コード例 #5
0
 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
     }
 }
コード例 #6
0
        private void Handle(CommandEnvelope commandEnvelope, NachbestellungBeauftragen aktion, UnitOfWork unitOfWork)
        {
            if (aktion.BestellteMenge<=0) throw new VorgangNichtAusgefuehrt("Menge muss angegeben werden");

            var repo = new LagerbestandRepository(unitOfWork);
            var liste = repo.Retrieve(aktion.LagerId, aktion.ProduktId);
            var alt = 0;
            if (liste.Bestand.Count == 0)
            {
                repo.Insert(aktion.LagerId, aktion.ProduktId);
            }
            else
            {
                alt = liste.Bestand.Single().MengeImZulauf;
            }

            repo.Set_Zulauf(aktion.LagerId, aktion.ProduktId, alt + aktion.BestellteMenge);
        }
コード例 #7
0
 private void Handle(CommandEnvelope commandEnvelope, KundeErfassen aktion, UnitOfWork unitOfWork)
 {
     var repo = new KundenRepository(unitOfWork);
     repo.Insert(aktion.KundenId, aktion.Name, aktion.Anschrift);
 }
コード例 #8
0
 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));
         });
 }
コード例 #9
0
 private void Handle(CommandEnvelope commandEnvelope, ArtikelAusWarenkorbEntfernen aktion, UnitOfWork unitOfWork)
 {
 }
コード例 #10
0
 private void Handle(CommandEnvelope commandEnvelope, AutomatischeNachbestellungenDeaktivieren aktion, UnitOfWork unitOfWork)
 {
 }
コード例 #11
0
 private void Handle(CommandEnvelope commandEnvelope, ProduktEinlisten aktion, UnitOfWork unitOfWork)
 {
     var repo = new ProduktRepository(unitOfWork);
     repo.Insert(aktion.ProduktId, aktion.Bezeichnung);
 }
コード例 #12
0
 private void Handle(CommandEnvelope commandEnvelope, NachbestellungBeauftragen aktion, UnitOfWork unitOfWork)
 {
     var lager = new LagerRepository(unitOfWork).Retrieve(aktion.LagerId, aktion.ProduktId);
     lager.Nachbestellen(aktion.BestellteMenge);
 }
コード例 #13
0
 private void Handle(CommandEnvelope commandEnvelope, ProduktEinlisten aktion, UnitOfWork unitOfWork)
 {
     var produkt = new ProduktRepository(unitOfWork).Retrieve(aktion.ProduktId);
     produkt.Einlisten(aktion.Bezeichnung);
 }
コード例 #14
0
 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);
 }
コード例 #15
0
 private void Handle(CommandEnvelope commandEnvelope, AuftragErfassen aktion, UnitOfWork unitOfWork)
 {
 }
コード例 #16
0
 private void Handle(CommandEnvelope commandEnvelope, AuftragAusfuehren aktion, UnitOfWork unitOfWork)
 {
 }
コード例 #17
0
 private void Handle(CommandEnvelope commandEnvelope, WareneingangVerbuchen aktion, UnitOfWork unitOfWork)
 {
     var produkt = new LagerRepository(unitOfWork).Retrieve(aktion.LagerId, aktion.ProduktId);
     produkt.Wareneingang();
 }
コード例 #18
0
 private void Handle(CommandEnvelope commandEnvelope, MindestVerfuegbarkeitDefinieren aktion, UnitOfWork unitOfWork)
 {
     var produkt = new LagerRepository(unitOfWork).Retrieve(aktion.LagerId, aktion.ProduktId);
     produkt.MindestVerfuegbarkeitDefinieren(aktion.MindestVerfuegbarkeit, aktion.MindestBestellmenge);
 }
コード例 #19
0
 private void Handle(CommandEnvelope commandEnvelope, AutomatischeNachbestellungenDeaktivieren aktion, UnitOfWork unitOfWork)
 {
     var produkt = new LagerRepository(unitOfWork).Retrieve(aktion.LagerId, aktion.ProduktId);
     produkt.AutomatischeNachbestellungenDeaktivieren();
 }
コード例 #20
0
 private void Handle(CommandEnvelope commandEnvelope, MindestVerfuegbarkeitDefinieren aktion, UnitOfWork unitOfWork)
 {
 }
コード例 #21
0
 private void Handle(CommandEnvelope commandEnvelope, ArtikelZuWarenkorbHinzufuegen aktion, UnitOfWork unitOfWork)
 {
     var warenkorb = new WarenkorbRepository(unitOfWork).Retrieve(aktion.Warenkorb);
     warenkorb.FuegeHinzu(aktion.Produkt, aktion.Menge);
 }
コード例 #22
0
 private void Handle(CommandEnvelope commandEnvelope, ArtikelZuWarenkorbHinzufuegen aktion, UnitOfWork unitOfWork)
 {
 }
コード例 #23
0
 private void Handle(CommandEnvelope commandEnvelope, ArtikelAusWarenkorbEntfernen aktion, UnitOfWork unitOfWork)
 {
     var warenkorb = new WarenkorbRepository(unitOfWork).Retrieve(aktion.Warenkorb);
     warenkorb.Entfernen(aktion.Zeile);
 }
コード例 #24
0
 private void Handle(CommandEnvelope commandEnvelope, WarenkorbLeeren aktion, UnitOfWork unitOfWork)
 {
 }
コード例 #25
0
 private void Handle(CommandEnvelope commandEnvelope, WarenkorbLeeren aktion, UnitOfWork unitOfWork)
 {
     var warenkorb = new WarenkorbRepository(unitOfWork).Retrieve(aktion.Warenkorb);
     warenkorb.Leeren();
 }