/// <summary>
        /// Updates an Article item.
        /// </summary>
        private static void UpdateArticleItem(Item articleItem, BlogFeedItem feedItem)
        {
            // Set the item fields
            articleItem.Editing.BeginEdit();
            try
            {
                articleItem["Title"]        = feedItem.Title;
                articleItem["Description"]  = feedItem.Description;
                articleItem["Article Type"] = Constants.ArticleType_BlogPost;

                // Display Date
                DateField displayDate = articleItem.Fields["Display Date"];
                displayDate.Value = DateUtil.ToIsoDate(feedItem.Updated.Date);

                // Link
                LinkField link = articleItem.Fields["Link"];
                link.Url      = feedItem.Link;
                link.Target   = "_blank";
                link.LinkType = "external";
            }
            finally
            {
                articleItem.Editing.EndEdit();
            }
        }
        /// <summary>
        /// Gets or creates a year item.
        /// </summary>
        private Item CreateOrGetYearItem(Item parentItem, BlogFeedItem feedItem)
        {
            Item yearItem = parentItem.Axes.GetChild(feedItem.Updated.Year.ToString());

            if (yearItem == null)
            {
                yearItem = parentItem.Add(feedItem.Updated.Year.ToString(), Constants.ArticleFolderTemplateID);
            }

            return(yearItem);
        }
        /// <summary>
        /// Gets or creates a month item.
        /// </summary>
        private Item CreateOrGetMonthItem(Item yearItem, BlogFeedItem feedItem)
        {
            // Create or get the Month folder item.
            string monthName = feedItem.Updated.Month < 10
                ? string.Concat("0", feedItem.Updated.Month.ToString())
                : feedItem.Updated.Month.ToString();

            Item monthItem = yearItem.Axes.GetChild(monthName);

            if (monthItem == null)
            {
                monthItem = yearItem.Add(monthName, Constants.ArticleFolderTemplateID);
            }

            return(monthItem);
        }
        /// <summary>
        /// Gets or creates an article item.
        /// </summary>
        private Item CreateOrGetArticleItem(Item monthItem, BlogFeedItem feedItem)
        {
            Guid feedItemID = Guid.Empty;

            if (Guid.TryParse(feedItem.FeedID, out feedItemID))
            {
                Item articleItem = monthItem.Axes.GetChild(new ID(feedItemID));

                if (articleItem == null)
                {
                    string itemName = ItemUtil.ProposeValidItemName(feedItem.Title);

                    articleItem = monthItem.Add(itemName, Constants.ArticleTemplateID, new ID(feedItemID));
                }

                return(articleItem);
            }

            return(null);
        }