public int?CreateClient(Client client, HttpPostedFileBase logo, HttpPostedFileBase profile)
 {
     client.Guid = Guid.NewGuid();
     using (TransactionScope transaction = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions()
     {
         IsolationLevel = IsolationLevel.ReadCommitted,
         Timeout = CommonConfiguration.Configuration.TransactionScope_Timeout
     }))
     {
         var clientId = _clientRepository.Create(client);
         client.CustomizationId = ProcessIncomingCustomization(client.CreateUserId.Value, client.CustomizationId, client.Customization);
         client.AssetLogoId     = ProcessIncomingImage(client.Id, client.CreateUserId.Value, client.AssetLogoId, null, logo);
         client.AssetProfileId  = ProcessIncomingImage(client.Id, client.CreateUserId.Value, client.AssetProfileId, null, profile);
         if (client.AssetLogoId != null || client.AssetProfileId != null)
         {
             _clientRepository.UpdateEntity(client);
         }
         RegistrationCode regCode = new RegistrationCode();
         if (clientId != null && _registrationCodeRepository.Create(clientId.Value, out regCode) &&
             _securityUserClientRepository.Create(client.CreateUserId.Value, client.Id))
         {
             transaction.Complete();
         }
         return(clientId);
     }
 }
        public bool CreateUser(SecurityUser user, string registrationCode)
        {
            bool created = false;

            using (TransactionScope transaction = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions()
            {
                IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted,
                Timeout = CommonConfiguration.Configuration.TransactionScope_Timeout
            }))
            {
                var regCode = _registrationCodeRepository.Consume(registrationCode);

                if (regCode.Success)
                {
                    user.RegistrationCodeId = regCode.Id;
                    var userid = _securityUserRepository.Create(user);
                    if (regCode.ClientId != null)
                    {
                        var userClient = new SecurityUserClient
                        {
                            ClientId       = regCode.ClientId.Value,
                            CreateUserId   = userid,
                            SecurityUserId = (int)userid,
                        };
                        if (_securityUserClientRepository.Create(userClient))
                        {
                            user.Clients = new List <SecurityUserClient> {
                                userClient
                            };
                        }
                    }
                    if (userid != null && userid > 0 &&
                        (regCode.ClientId == null || user.Clients.Count() > 0))
                    {
                        transaction.Complete();
                        created = true;
                    }
                }
                return(created);
            }
        }