Ejemplo n.º 1
0
    private Reservation(
        Guid id,
        IReservationNumberGenerator numberGenerator,
        Guid seatId)
    {
        if (id == Guid.Empty)
        {
            throw new ArgumentOutOfRangeException(nameof(id));
        }
        if (seatId == Guid.Empty)
        {
            throw new ArgumentOutOfRangeException(nameof(seatId));
        }

        var reservationNumber = numberGenerator.Next();

        var @event = TentativeReservationCreated.Create(
            id,
            seatId,
            reservationNumber
            );

        Enqueue(@event);
        Apply(@event);
    }
 public HandleCreateTentativeReservation(
     IRepository <Reservation> repository,
     IReservationNumberGenerator reservationNumberGenerator
     )
 {
     this.repository = repository;
     this.reservationNumberGenerator = reservationNumberGenerator;
 }
Ejemplo n.º 3
0
 public static Reservation CreateTentative(
     Guid id,
     IReservationNumberGenerator numberGenerator,
     Guid seatId)
 {
     return(new Reservation(
                id,
                numberGenerator,
                seatId));
 }
        public ReservationCommandHandler(
            IRepository <Reservation> repository,
            IReservationNumberGenerator reservationNumberGenerator
            )
        {
            Guard.Against.Null(repository, nameof(repository));
            Guard.Against.Null(reservationNumberGenerator, nameof(reservationNumberGenerator));

            this.repository = repository;
            this.reservationNumberGenerator = reservationNumberGenerator;
        }
Ejemplo n.º 5
0
        private Reservation(
            Guid id,
            IReservationNumberGenerator numberGenerator,
            Guid seatId)
        {
            Guard.Against.Null(id, nameof(id));
            Guard.Against.Null(numberGenerator, nameof(numberGenerator));
            Guard.Against.Default(seatId, nameof(seatId));

            var reservationNumber = numberGenerator.Next();

            var @event = TentativeReservationCreated.Create(
                id,
                seatId,
                reservationNumber
                );

            Enqueue(@event);
            Apply(@event);
        }