Exemplo n.º 1
0
        protected static void ProcessProfileKeys(ContentProfile profile, ProfileItem profileItem)
        {
            Assert.ArgumentNotNull(profile, "profile");
            Assert.ArgumentNotNull(profileItem, "profileItem");
            Assert.IsFalse(profile.ProfileID == ID.Null, "profile ID");

            foreach (ProfileKeyItem profileKeyItem in profileItem.Keys.ToList())
            {
                ProfileKeyItem keyItem = profileKeyItem;
                // NM: Check to see if there are any keys
                if (profile.Keys.Length == 0)
                {
                    continue;
                }

                if (profile.Keys.FirstOrDefault(k => string.Compare(k.Key, keyItem.Name, StringComparison.OrdinalIgnoreCase) == 0) == null)
                {
                    ContentProfileKeyData key = new ContentProfileKeyData(keyItem)
                    {
                        Value = keyItem.GetDefaultValue()
                    };
                    profile.AddKey(key);
                }
            }
            foreach (ContentProfileKeyData key in profile.Keys.Where(key => key.ProfileDefinitionId == Guid.Empty))
            {
                profile.RemoveKey(key);
            }
            UpdateKeyValues(profile);
        }