public void Reserve(CustomerId customerId, ICustomerRepository customerRepository) { if (!customerRepository.Get(customerId).CanReserve()) { throw new DomainEvent("Only VIP Clients can reserve masterpieces"); } if (_reservationCustomerId == customerId) { throw new DomainEvent("Already reserved by you"); } if (_reservationCustomerId != null && _reservationCustomerId != customerId) { throw new DomainEvent("Already reserved"); } _reservationCustomerId = customerId; PublishEvent(new MasterpieceReservedEvent(Id, customerId, Version)); }
public RevokedMasterpieceReservationEvent(Guid id, CustomerId customerId, int version) { Id = id; CustomerId = customerId; Version = version; }
public MasterpieceBoughtEvent(Guid id, CustomerId customerId, int version) { Id = id; CustomerId = customerId; Version = version; }
public MasterpieceReservedEvent(Guid id, CustomerId customerId, int version) { Id = id; CustomerId = customerId; Version = version; }