public void Handle(MovieWatched @event) { _historyRepository.AddNewEntry(@event); List <Promotion> activePromotions = _promotionRepository.GetActivePromotions(); foreach (var promotion in activePromotions) { promotion.GrantBenefit(new Visitor(@event.UserId), _historyRepository, _promotionCodeGenerator); } }