public string CreateCustomer(string applicationReference, Customer customer)
        {
            Check.If(applicationReference).IsNotNullOrEmpty();
            Check.If(customer).IsNotNull();

            if (!string.IsNullOrEmpty(customer.CustomerReference))
            {
                return null;
            }

            //check if someone is trying to add a master tenant when we already have one
            if (customer.IsMasterTenant())
            {
                var customers = _customerRepository.GetCustomersForApplication(applicationReference);

                if (customers.FirstOrDefault(c => c.RoleType == RoleType.MasterTenant) != null)
                    return null;
            }

            var result = _customerRepository.CreateCustomerForApplication(applicationReference,
                customer.CreateReference(_referenceGenerator));

            UpdateApplicationStatus(applicationReference, customer);

            return result ? customer.CustomerReference : null;
        }
 private void UpdateApplicationStatus(string applicationReference, Customer customer)
 {
     if (customer.IsMasterTenant())
         _customerRepository.UpdateApplicationStatus(applicationReference, customer.Status);
 }