示例#1
0
        private bool CanApply(CapacityReservedEvent @event)
        {
            if (this.IsReplayOf(@event))
            {
                return(true);
            }

            return(this.remaining >= @event.Quantity);
        }
示例#2
0
        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()));
        }