public bool RegisterUserAndCharity(RegistrationInfo registrationInfo)
        {
            bool result = false;
            var charity = new Charity
            {
                Name = registrationInfo.CharityName,
                RegisteredCharityNumber = registrationInfo.CharityName,
                SubDomain = registrationInfo.SubDomain
            };
            using (var scope = new TransactionScope())
            {
                var newCharity = CharitiesDataAccess.Insert(charity);
                if (newCharity == null) throw new ArgumentNullException("newCharity");


                // Attempt to register the user
                MembershipCreateStatus createStatus;
                Membership.CreateUser(registrationInfo.UserIdentifier, registrationInfo.Password, registrationInfo.UserIdentifier, null, null, true, null, out createStatus);
                var user = Membership.GetUser(registrationInfo.UserIdentifier);
                if (user == null) throw new ArgumentNullException("user");

                var charityMembership = new CharityMembership
                {
                    CharityId = newCharity.Id,
                    UserName = user.UserName
                };
                var newCharityMembership = CharitiesMembershipsDataAccess.Insert(charityMembership);

                if (createStatus == MembershipCreateStatus.Success && newCharityMembership != null)
                {
                    result = true;
                    scope.Complete();
                }
                
            }
            return result;
        }
 public void Delete(CharityMembership charityMembership)
 {
     _db.CharityMembership.DeleteById(charityMembership.Id);
 }
 public void Update(CharityMembership charityMembership)
 {
     _db.CharityMembership.UpdateById(charityMembership);
 }
 public CharityMembership Insert(CharityMembership charityMembership)
 {
     return _db.CharityMembership.Insert(charityMembership);
 }