private static void SetPropertyValues(SettingsPropertyValueCollection ppvc, Profile profile) { foreach (SettingsPropertyValue pv in ppvc) { switch (pv.Property.Name) { case "IsAnonymous": profile.IsAnonymous = (bool)pv.PropertyValue; break; case "LastActivityDate": profile.LastActivityDate = (DateTime)pv.PropertyValue; break; case "LastUpdatedDate": profile.LastUpdatedDate = (DateTime)pv.PropertyValue; break; case "Subscription": profile.Subscription = pv.PropertyValue.ToString(); break; case "Language": profile.Language = pv.PropertyValue.ToString(); break; case "FirstName": profile.FirstName = pv.PropertyValue.ToString(); break; case "LastName": profile.LastName = pv.PropertyValue.ToString(); break; case "Gender": profile.Gender = pv.PropertyValue.ToString(); break; case "BirthDate": profile.BirthDate = (DateTime)pv.PropertyValue; break; case "Occupation": profile.Occupation = pv.PropertyValue.ToString(); break; case "Website": profile.Website = pv.PropertyValue.ToString(); break; case "Street": profile.Street = pv.PropertyValue.ToString(); break; case "City": profile.City = pv.PropertyValue.ToString(); break; case "State": profile.Province = pv.PropertyValue.ToString(); break; case "Zip": profile.Zip = pv.PropertyValue.ToString(); break; case "Country": profile.Country = pv.PropertyValue.ToString(); break; default: throw new ProviderException("Unsupported property."); } } }
private Profile GetProfile(string username, bool isAnonymous, IRepository<Profile> profiles) { var profile = profiles .FirstOrDefault(p => p.User.UserName == username && p.ApplicationName == ApplicationName && p.IsAnonymous == isAnonymous); if (profile == null) { var membershipUser = UnitOfWork.Current.CreateRepository<User>() .FirstOrDefault(p => p.UserName == username && p.ApplicationName == ApplicationName); if (membershipUser == null) throw new ProviderException("Profile cannot be created. There is no membership user"); profile = new Profile(); profile.IsAnonymous = isAnonymous; profile.LastUpdatedDate = System.DateTime.Now; profile.LastActivityDate = System.DateTime.Now; profile.ApplicationName = this.ApplicationName; profile.UserId = membershipUser.Id; profiles.Insert(profile); } return profile; }
private static SettingsPropertyValueCollection GetPropertyValues(SettingsPropertyCollection ppc, Profile profile) { var svc = new SettingsPropertyValueCollection(); foreach (SettingsProperty prop in ppc) { SettingsPropertyValue pv = new SettingsPropertyValue(prop); switch (prop.Name) { case "IsAnonymous": pv.PropertyValue = profile.IsAnonymous; break; case "LastActivityDate": pv.PropertyValue = profile.LastActivityDate; break; case "LastUpdatedDate": pv.PropertyValue = profile.LastUpdatedDate; break; case "Subscription": pv.PropertyValue = profile.Subscription; break; case "Language": pv.PropertyValue = profile.Language; break; case "FirstName": pv.PropertyValue = profile.FirstName; break; case "LastName": pv.PropertyValue = profile.LastName; break; case "Gender": pv.PropertyValue = profile.Gender; break; case "BirthDate": pv.PropertyValue = profile.BirthDate; break; case "Occupation": pv.PropertyValue = profile.Occupation; break; case "Website": pv.PropertyValue = profile.Website; break; case "Street": pv.PropertyValue = profile.Street; break; case "City": pv.PropertyValue = profile.City; break; case "State": pv.PropertyValue = profile.Province; break; case "Zip": pv.PropertyValue = profile.Zip; break; case "Country": pv.PropertyValue = profile.Country; break; default: throw new ProviderException("Unsupported property."); } svc.Add(pv); } return svc; }