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)); } }
public ApplyPromotionsWhenMovieWatched( IPromotionRepository promotionRepository, IVisitorHistoryRepository historyRepository, IPromotionCodeGenerator promotionCodeGenerator) { _promotionRepository = promotionRepository; _historyRepository = historyRepository; _promotionCodeGenerator = promotionCodeGenerator; }
public override bool IsSatisfiedFor(Visitor visitor, IVisitorHistoryRepository historyService) { return historyService.HasWatchedMovies(visitor, MoviesToWatch); }
public override bool IsSatisfiedFor(Visitor visitor, IVisitorHistoryRepository historyService) { return(historyService.HasWatchedMovies(visitor, MoviesToWatch)); }
public override bool IsSatisfiedFor(Visitor visitor, IVisitorHistoryRepository historyService) { return historyService.HasAttendedPremiere(visitor, ValidityRange, RequiredCount); }
public abstract bool IsSatisfiedFor(Visitor visitor, IVisitorHistoryRepository historyService);
public override bool IsSatisfiedFor(Visitor visitor, IVisitorHistoryRepository historyService) { return(historyService.HasAttendedPremiere(visitor, ValidityRange, RequiredCount)); }