public async Task <CustomerProfileErrorCodes> SetEmailAsVerifiedAsync(string customerId)
        {
            var(error, wasEmailEverVerified) = await _customerProfileRepository.SetEmailVerifiedAsync(customerId);

            switch (error)
            {
            case CustomerProfileErrorCodes.CustomerProfileDoesNotExist:
                _log.Warning("Customer Profile does not exists", context: customerId);
                break;

            case CustomerProfileErrorCodes.CustomerProfileEmailAlreadyVerified:
                _log.Warning("Customer profile email is already verified", context: customerId);
                break;

            default:
                _log.Info("Customer profile email is successfully verified", context: customerId);
                await _emailVerifiedPublisher.PublishAsync(
                    new EmailVerifiedEvent
                {
                    CustomerId           = customerId,
                    TimeStamp            = DateTime.UtcNow,
                    WasEmailEverVerified = wasEmailEverVerified
                });

                break;
            }

            return(error);
        }