Example #1
0
        /// <summary>Find out if an item name is occupied.</summary>
        /// <param name="name">The name to check.</param>
        /// <param name="item">The item whose siblings (other items with the same parent) might be have a clashing name.</param>
        /// <returns>True if the name is unique.</returns>
        public virtual bool IsLocallyUnique(string name, ContentItem item)
        {
            if (name == null || item == null)
            {
                return(true);
            }

            ContentItem parentItem = item.Parent;

            if (parentItem != null)
            {
                var similarItems = GetItemsWithSameName(name, parentItem);
                foreach (var potentiallyClashingItem in similarItems)
                {
                    if (item.Equals(potentiallyClashingItem))
                    {
                        // it's me!
                        continue;
                    }
                    if ((item.ID == 0 && item.State != ContentState.New) ^ potentiallyClashingItem.ID == 0)
                    {
                        // it's probably a version of myself, TODO: save version key on master item
                        continue;
                    }

                    return(false);
                }
            }
            return(true);
        }
        private Control CreateInternalLink(Control container, ViewContext context, string fragment)
        {
            string[]    fragments       = fragment.Split('|');
            ContentItem existingArticle = context.Article.WikiRoot.GetChild(fragments[0]);

            if (existingArticle != null && !existingArticle.Equals(context.Article.WikiRoot))
            {
                return(AppendAnchor(container, fragments.Length > 1 ? fragments[1] : fragments[0], existingArticle.Url, true));
            }
            else
            {
                string url = Url.Parse(context.Article.WikiRoot.Url).AppendSegment(fragments[0]);
                return(AppendAnchor(container, fragments.Length > 1 ? fragments[1] : fragments[0], url, false));
            }
        }
Example #3
0
        protected bool IsPublished(object dataItem)
        {
            var item = dataItem as ContentItem;

            return(publishedItem.Equals(item) && item.Published.HasValue);
        }
        /// <summary>Find out if an item name is occupied.</summary>
        /// <param name="name">The name to check.</param>
        /// <param name="item">The item whose siblings (other items with the same parent) might be have a clashing name.</param>
        /// <returns>True if the name is unique.</returns>
        public virtual bool IsLocallyUnique(string name, ContentItem item)
        {
            if (name == null || item == null) return true;

            ContentItem parentItem = item.Parent;
            if (parentItem != null)
            {
                var similarItems = GetItemsWithSameName(name, parentItem);
                foreach (var potentiallyClashingItem in similarItems)
                {
					if (item.Equals(potentiallyClashingItem))
						// it's me!
						continue;
					if ((item.ID == 0 && item.State != ContentState.New) ^ potentiallyClashingItem.ID == 0)
						// it's probably a version of myself, TODO: save version key on master item
						continue;

                    return false;
                }
            }
            return true;
        }
        protected bool IsPublished(object dataItem)
        {
            var item = dataItem as ContentItem;

            return(item != null && (publishedItem.Equals(item) && item.IsPublished()));
        }