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, 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); }