public async Task Handle(UserRegisteredEvent notification, CancellationToken cancellationToken)
        {
            if (!_options.RequireConfirmedEmail || string.IsNullOrWhiteSpace(notification.Url))
            {
                return;
            }

            var user = await _userStore.FindByIdAsync(notification.UserId, cancellationToken);

            var templateOptions = _interactionOptions.Emails?.EmailConfirmation?.TemplateOptions ??
                                  new EmailTemplateOptions
            {
                File            = "user-registered-confirmation.html",
                FileStorageType = FileStorageTypes.Embedded
            };
            var subject = _interactionOptions.Emails?.EmailConfirmation?.Subject ??
                          "User registration email confirmation";
            var confirmationContent = await _emailTemplate.Generate(new ConfirmationEmailModel
            {
                Url = notification.Url
            }, templateOptions);

            await _emailer.Send(user.Email, subject, confirmationContent);
        }
        public async Task Handle(ForgotPasswordRequestedEvent notification, CancellationToken cancellationToken)
        {
            var user = await _userManager.FindByIdAsync(notification.UserId);

            if (user == null)
            {
                throw new DomainException($"User {notification.UserId} not found.");
            }

            var templateOptions = _interactionOptions.Emails?.ForgotPassword?.TemplateOptions ??
                                  new EmailTemplateOptions
            {
                File            = "user-forgotpassword-request.html",
                FileStorageType = FileStorageTypes.Embedded
            };
            var subject = _interactionOptions.Emails?.ForgotPassword?.Subject ?? "Reset password";

            var content = await _emailTemplate.Generate(new ForgotPasswordEmailModel
            {
                Url = notification.Url
            }, templateOptions);

            await _emailer.Send(user.Email, subject, content);
        }