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); }
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); }