public IEnumerable <IProjectTag> GetAllTags(bool liveOnly = false)
        {
            if (!liveOnly)
            {
                return(Tag.GetTags("project").Where(x => x.NodeCount > 2).Select(x => new ProjectTag()
                {
                    Id = x.Id,
                    Text = x.TagCaption,
                    LiveCount = x.NodeCount
                }));
            }

            var tagList = new List <IProjectTag>();

            var nodeListingProvider = new NodeListingProvider();

            var projects = nodeListingProvider.GetAllListings(true);

            foreach (var p in projects)
            {
                foreach (var t in p.Tags)
                {
                    if (tagList.Contains(t))
                    {
                        tagList.Find(delegate(IProjectTag tag)
                        {
                            return(tag.Id == t.Id);
                        }).LiveCount++;
                    }
                    else
                    {
                        t.LiveCount++;
                        tagList.Add(t);
                    }
                }
            }


            return(tagList);
        }