Example #1
0
        internal bool TryReserveTicketsFor(Customer customer, int numTickets)
        {
            var requiredCapacity = _ticketsSold + numTickets;
            if (Capacity < requiredCapacity) return false;

            var fact = new TicketReservedFact
                       {
                           AggregateRootId = Id,
                           CustomerId = customer.Id,
                           NumTickets = numTickets,
                       };

            Append(fact);
            Apply(fact);
            return true;
        }
Example #2
0
 public void Apply(TicketReservedFact fact)
 {
     var ticketSale = new TicketSale(fact.CustomerId, fact.NumTickets);
     _ticketSales.Add(ticketSale);
     _ticketsSold += fact.NumTickets;
 }