public override async Task <string> Execute(Guid request)
        {
            var email = _dbContext.ConfirmationEmails
                        .Include(ce => ce.User)
                        .FirstOrDefault(ce => ce.Id == request);

            if (email == null)
            {
                throw new EmailVerificationTokenNotFoundException();
            }

            if (email.Used)
            {
                return(email.User.CandidateId);
            }

            email.Used = true;

            var user = email.User;

            user.EmailVerified = true;
            await AssignCandidateId(user);

            await _dbContext.SaveChangesAsync();

            _sendEmailCommand.Execute(new EmailDto()
            {
                To    = user.Email,
                Title = EmailContentConfiguration.EmailVerifiedTitle,
                Body  = EmailContentConfiguration.EmailVerifiedBody(user.CandidateId)
            });

            return(user.CandidateId);
        }