public void CanReplaceInDictionary()
        {
            DetailCollection collection = new DetailCollection();

            collection.Replace(new Dictionary <string, object> {
                { "One", 1 }, { "Two", 2 }
            });
            collection.Replace(new Dictionary <string, object> {
                { "One", 1 }, { "Three", 3 }
            });
            var dict = collection.AsDictionary();

            dict.Count.ShouldBe(2);
            dict["One"].ShouldBe(1);
            dict["Three"].ShouldBe(3);
        }
Beispiel #2
0
        public void CanReplace_ValuesInCollection()
        {
            DetailCollection collection = new DetailCollection(null, null, "hello", "world");

            collection.Replace(new[] { "hi", "world" });

            Assert.That(collection.Contains("hi"));
            Assert.That(collection.Contains("world"));
            Assert.That(!collection.Contains("hello"));
        }
Beispiel #3
0
        public void CanReplace_ValuesInCollection_WithoutRemoving_ExistingDetails()
        {
            DetailCollection collection = new DetailCollection(null, null, "hello", "world");

            collection.Details[0].ID = 666;
            collection.Details[1].ID = 777;

            collection.Replace(new[] { "hi", "world" });

            Assert.That(collection.Details.Where(d => d.ID == 777).Single().Value, Is.EqualTo("world"));
        }
Beispiel #4
0
        public static void SetRoles(ContentItem item, Permission permission, params string[] roles)
        {
            foreach (Permission permissionLevel in SplitPermission(permission))
            {
                if (permissionLevel == Permission.Read)
                {
                    for (int i = item.AuthorizedRoles.Count - 1; i >= 0; i--)
                    {
                        AuthorizedRole role = item.AuthorizedRoles[i];
                        if (Array.IndexOf(roles, role.Role) < 0)
                        {
                            item.AuthorizedRoles.RemoveAt(i);
                        }
                    }
                    foreach (string role in roles)
                    {
                        AuthorizedRole temp = new AuthorizedRole(item, role);
                        if (!item.AuthorizedRoles.Contains(temp))
                        {
                            item.AuthorizedRoles.Add(temp);
                        }
                    }

                    AlterPermissions(item.AuthorizedRoles.Count > 0, item, permissionLevel);
                }
                else
                {
                    string collectionName = AuthorizedRolesPrefix + permissionLevel;
                    if (roles.Length == 0)
                    {
                        var dc = item.DetailCollections[collectionName];
                        if (dc != null)
                        {
                            dc.EnclosingItem = null;
                            item.DetailCollections.Remove(collectionName);
                        }
                    }
                    else
                    {
                        DetailCollection details = item.GetDetailCollection(collectionName, true);
                        details.Replace(roles);
                    }
                    AlterPermissions(roles.Length > 0, item, permissionLevel);
                }
            }
        }
Beispiel #5
0
        /// <summary>Is invoked when an item is beeing saved.</summary>
        /// <param name="item">The item that is beeing saved.</param>
        protected virtual void OnTrackingLinks(ContentItem item)
        {
            var referencedItems    = FindLinkedObjects(item).ToList();
            DetailCollection links = item.GetDetailCollection(LinkDetailName, false);

            if (referencedItems.Count > 0)
            {
                if (links == null)
                {
                    links = item.GetDetailCollection(LinkDetailName, true);
                }
                links.Replace(referencedItems);
            }
            else if (links != null && links.Count > 0)
            {
                links.Clear();
            }
        }
Beispiel #6
0
        public override bool UpdateItem(ContentItem item, Control editor)
        {
            CheckBoxList  cbl   = editor as CheckBoxList;
            List <string> roles = new List <string>();

            foreach (ListItem li in cbl.Items)
            {
                if (li.Selected)
                {
                    roles.Add(li.Value);
                }
            }

            DetailCollection dc = item.GetDetailCollection(Name, true);

            dc.Replace(roles);

            return(true);
        }
		public void CanReplaceInDictionary()
		{
			DetailCollection collection = new DetailCollection();
			collection.Replace(new Dictionary<string, object> { { "One", 1 }, { "Two", 2 } });
			collection.Replace(new Dictionary<string, object> { { "One", 1 }, { "Three", 3 } });
			var dict = collection.AsDictionary();

			dict.Count.ShouldBe(2);
			dict["One"].ShouldBe(1);
			dict["Three"].ShouldBe(3);
		}
		public void CanReplace_ValuesInCollection_WithoutRemoving_ExistingDetails()
		{
			DetailCollection collection = new DetailCollection(null, null, "hello", "world");
			collection.Details[0].ID = 666;
			collection.Details[1].ID = 777;

			collection.Replace(new[] { "hi", "world" });

			Assert.That(collection.Details.Where(d => d.ID == 777).Single().Value, Is.EqualTo("world"));
		}
		public void CanReplace_ValuesInCollection()
		{
			DetailCollection collection = new DetailCollection(null, null, "hello", "world");

			collection.Replace(new[] {"hi", "world"});

			Assert.That(collection.Contains("hi"));
			Assert.That(collection.Contains("world"));
			Assert.That(!collection.Contains("hello"));
		}