/// <summary>
        /// Builds the name of the item to item node.
        /// </summary>
        /// <param name="item">The item.</param>
        /// <returns>item to item node name</returns>
        private static string BuildItemToItemNodeName(ItemToItem item)
        {
            if (item == null)
              {
            return string.Empty;
              }

              var targetUrl = "Empty";
              if (!string.IsNullOrEmpty(item.TargetItem.Url))
              {
            targetUrl = item.TargetItem.IsInternal ? UrlNormalizer.GetItemUrl(item.TargetItem.TargetItem) : item.TargetItem.Url;
              }

              return string.Format(
               "<div class=\"block-name\"><div class=\"name\">{0}</div><div class=\"title\">Base Url: {2}, Target Url: {3}</div></div><div class=\"description\">Redirect Code: {4}, Last Use: {5}, ID: {1}</div>",
               item.Name,
               item.ID,
               string.IsNullOrEmpty(item.BaseItem.Value) ? "Empty" : UrlNormalizer.CheckPageExtension(UrlNormalizer.Normalize(item.BaseItem.Value)),
               targetUrl,
               item.RedirectCode != 0 ? item.RedirectCode : Configuration.RedirectStatusCode,
               item.LastUse.DateTime.ToString("MM/dd/yy") != "01/01/01" ? item.LastUse.DateTime.ToString("MM/dd/yy") : "Never");
        }
        /// <summary>
        /// The build node name.
        /// </summary>
        /// <param name="item">
        /// The item.
        /// </param>
        /// <returns>
        /// The <see cref="string"/>.
        /// </returns>
        private static string BuildNodeName(Item item)
        {
            if (item == null)
              {
            return string.Empty;
              }

              var templateId = item.TemplateID.ToString();
              switch (templateId)
              {
            case ItemToItem.TemplateId:
              var itemToItem = new ItemToItem(item);
              return BuildItemToItemNodeName(itemToItem);

            case SectionToItem.TemplateId:
              var sectionToItem = new SectionToItem(item);
              return BuildSectionToItemNode(sectionToItem);

            case SectionToSection.TemplateId:
              var sectionToSection = new SectionToSection(item);
              return BuildSectionToSectionNode(sectionToSection);

            case RegExRedirect.TemplateId:
              var regExRedirect = new RegExRedirect(item);
              return BuildRegExNodeName(regExRedirect);
              }

              return string.Format("<p>{0}</p>", item.Name);
        }
        /// <summary>
        /// Adds the item to item redirect.
        /// </summary>
        /// <param name="item">The item.</param>
        /// <returns>Redirect item</returns>
        private static RedirectItem AddItemToItemRedirect(Item item)
        {
            if (item == null)
              {
            return null;
              }

              var itemToItem = new ItemToItem(item);
              if (string.IsNullOrEmpty(itemToItem.TargetItem.Url) || string.IsNullOrEmpty(itemToItem.BaseItem.Value))
              {
            return null;
              }

              if (!CheckPresentation(itemToItem.TargetItem.TargetItem))
              {
            return null;
              }

              var external = true;
              var targetUrl = itemToItem.TargetItem.Url;
              if (itemToItem.TargetItem.IsInternal)
              {
            targetUrl = UrlNormalizer.GetItemUrl(itemToItem.TargetItem.TargetItem);
            external = false;
              }

              var redirectItem = new RedirectItem
            {
              ItemId = itemToItem.ID,
              Target = targetUrl,
              TargetQueryString = itemToItem.TargetItem.QueryString,
              Base = UrlNormalizer.CheckPageExtension(UrlNormalizer.Normalize(itemToItem.BaseItem.Value)),
              External = external,
              RedirectCode = itemToItem.RedirectCode
            };

              return redirectItem;
        }