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