public bool CreateEmailAddress(EmailAddress emailAddress)
        {
            Check.If(emailAddress).IsNotNull();

            emailAddress.GenerateReference(_referenceGenerator);

            return _emailAddressRepository.CreateEmailAddress(emailAddress);
        }
        public bool CreateEmailAddress(EmailAddress emailAddress)
        {
            using (var context = new CommunicationsContext(_databaseSettings.ConnectionString))
            {
                emailAddress.Normalise();

                //do not create invalid records or duplicates
                if(!emailAddress.IsValidEmailAddress() ||
                    GetEmailAddressByEmail(emailAddress.Email) != null)
                    return false;

                context.EmailAddresses.Add(emailAddress);

                return context.SaveChanges() > 0;
            }
        }