private bool CanApply(CapacityReservedEvent @event) { if (this.IsReplayOf(@event)) { return(true); } return(this.remaining >= @event.Quantity); }
private Capacity Apply(CapacityReservedEvent @event) { if (!this.CanApply(@event)) { throw new ArgumentOutOfRangeException("request", "The quantity must be less than or equal to the remaining quantity."); } if (this.IsReplayOf(@event)) { return(this); } return(new Capacity(this.remaining - @event.Quantity, this.acceptedReservations.Concat(new[] { @event.Id }).ToArray())); }