Пример #1
0
 public Promotion(ValidityRange validityRange, ReceiveCondition receiveCondition, Benefit benefit)
 {
     Id = Guid.NewGuid();
     ValidityRange = validityRange;
     ReceiveCondition = receiveCondition;
     Benefit = benefit;
 }
Пример #2
0
 public Promotion(ValidityRange validityRange, ReceiveCondition receiveCondition, Benefit benefit)
 {
     Id               = Guid.NewGuid();
     ValidityRange    = validityRange;
     ReceiveCondition = receiveCondition;
     Benefit          = benefit;
 }
Пример #3
0
 public void GrantBenefit(Visitor visitor, IVisitorHistoryRepository historyService, IPromotionCodeGenerator generator)
 {
     Require.IsTrue(IsActive, "Promotion is not active");
     if (ReceiveCondition.IsSatisfiedFor(visitor, historyService))
     {
         Benefit.ApplyFor(visitor, generator);
         DomainEventBus.Current.Raise(new PromotionGrantedForVisitor(Id, visitor.Id));
     }
 }
Пример #4
0
 public void SetBenefit(Benefit benefit)
 {
     Require.NotNull(benefit, "benefit");
     Require.IsNotIn(State, DraftState.WaitingForApproval, DraftState.Accepted);
     Benefit = benefit;
     CheckCompletion();
 }