internal IAggregate MakePayment(int payment) { var expectedPayment = _orderLines.Sum(y => y.DiscountedPrice * y.Quantity); if (expectedPayment != payment) { throw new UnexpectedPaymentException(); } return(new Order(Id, _orderLines)); }
internal Order(Guid basketId, FSharpList<OrderLine> orderLines) : this() { var id = IdGenerator.GenerateGuid(); RaiseEvent(new OrderCreated(id, basketId, orderLines)); var totalPrice = orderLines.Sum(y => y.DiscountedPrice); if (totalPrice > 100000) { RaiseEvent(new NeedsApproval(id)); } else { RaiseEvent(new OrderApproved(id)); } }
internal Order(Guid basketId, FSharpList <OrderLine> orderLines) : this() { var id = IdGenerator.GenerateGuid(); RaiseEvent(new OrderCreated(id, basketId, orderLines)); var totalPrice = orderLines.Sum(y => y.DiscountedPrice); if (totalPrice > 100000) { RaiseEvent(new NeedsApproval(id)); } else { RaiseEvent(new OrderApproved(id)); } }