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; }
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; }
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); }