public async Task HandleAsync(SubscribeToTheNewsletter command, CancellationToken cancellationToken = default) { var subscriber = Subscriber.Subscribe(command.Id, command.Email); var discount = _discountCodeGenerator.GenerateCodeForSubscriber(_identityProvider.Next(), subscriber.Id); await _newsletterRepository.Add(subscriber, cancellationToken); await _discountRepository.Add(discount, cancellationToken); await _emailService.SendEmailWithDiscountCode(discount.GetCode(), cancellationToken); }