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(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); }
private void Handle(CommandEnvelope commandEnvelope, WareneingangVerbuchen aktion, UnitOfWork unitOfWork) { var produkt = new LagerRepository(unitOfWork).Retrieve(aktion.LagerId, aktion.ProduktId); produkt.Wareneingang(); }