示例#1
0
        public override IMemberProfileData GetMemberProfile(Object memberId, Dictionary <String, Object> providerKeys = null)
        {
            MemberProfileData profile = null;

            SqlProfile profileData = GetMemberProfileData(memberId);

            if (profileData != null)
            {
                profile = profileData.ToMemberProfileData();
            }

            return(profile);
        }
示例#2
0
        public override IMemberProfileData DeleteMemeberProfile(Object membershipId, Dictionary <String, Object> providerKeys = null)
        {
            IMemberProfileData returnProfile;
            SqlProfile         profileData = GetMemberProfileData(membershipId);

            if (profileData != null)
            {
                returnProfile = profileData.ToMemberProfileData();

                try
                {
                    // Since cascade deletes are a pain to setup with EF at the moment I will manually
                    // handle childern objects here
                    foreach (MailingAddress address in profileData.Addresses)
                    {
                        _dataContext.MailingAddresses.Remove(address);
                    }

                    foreach (PhoneNumber number in profileData.Phones)
                    {
                        _dataContext.PhoneNumbers.Remove(number);
                    }

                    foreach (EmailAddress email in profileData.EmailContacts)
                    {
                        _dataContext.EmailAddresses.Remove(email);
                    }

                    _dataContext.Profiles.Remove(profileData);
                    _dataContext.SaveChanges();
                }
                catch (Exception ex)
                {
                    throw new DataProviderException("Error deleting member profile data", ex);
                }
            }
            else
            {
                throw new DataProviderException("Unable to retrieve user record");
            }

            return(returnProfile);
        }