Exemplo n.º 1
0
        public override SettingsPropertyValueCollection GetPropertyValues(SettingsContext context,SettingsPropertyCollection ppc)
        {
            string username = (string)context["UserName"];
            bool isAuthenticated = (bool)context["IsAuthenticated"];
            Profiles profile = null;

            profile = GetProfile(username, isAuthenticated);
            // The serializeAs attribute is ignored in this provider implementation.
            SettingsPropertyValueCollection svc = new SettingsPropertyValueCollection();

            if (profile == null)
            {
                if (IsMembershipUser(username))
                    profile = CreateProfile(username,false);
                else
                    throw new ProviderException("Profile cannot be created. There is no membership user");
            }

            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 "MiddleName":
                        pv.PropertyValue = profile.MiddleName;
                        break;
                    case "LastName":
                        pv.PropertyValue = profile.LastName;
                        break;
                    case "Gender":
                        pv.PropertyValue = profile.Gender;
                        break;
                    case "BirthDate":
                        pv.PropertyValue = profile.BirthDate;
                        break;
                    case "Address":
                        pv.PropertyValue = profile.Address;
                        break;
                    case "Position":
                        pv.PropertyValue = profile.Position;
                        break;
                    case "UserId":
                        pv.PropertyValue = profile.Users_Id;
                        break;

                    default:
                        throw new ProviderException("Unsupported property." + pv.ToString());
                }

                    svc.Add(pv);
                }

            UpdateActivityDates(username, isAuthenticated, true);
            return svc;
        }