private void RemoveProductFromOrderLines(BasketItemRemoved evt) { var productId = evt.ProductId; var quantity = evt.Quantity; var orderLine = OrderLines.Single(ol => ol.ProductId == productId); orderLine.Quantity = orderLine.Quantity - quantity; if (orderLine.Quantity == 0) { OrderLines.Remove(orderLine); } }
public void When_RemoveItemBelowZero_ItemRemoved() { Given(InitialEvents.ToArray()); var command = new RemoveItemFromBasket(id, productId, 15); command.Metadata.CausationId = command.Metadata.CommandId; command.Metadata.CorrelationId = causationAndCorrelationId; When(command); var expectedEvent = new BasketItemRemoved(id, productId, 10); expectedEvent.Metadata.CausationId = command.Metadata.CommandId; expectedEvent.Metadata.CorrelationId = causationAndCorrelationId; expectedEvent.Metadata.ProcessId = command.Metadata.ProcessId; Then(expectedEvent); }
private void Apply(BasketItemRemoved evt) { RemoveProductFromOrderLines(evt); }