private List<SiteNav> GetPageCrumbNavByContent(vw_carrot_Content content, bool bActiveOnly)
{
Guid siteID = Guid.Empty;
Guid rootContentID = Guid.Empty;
Guid? parentContentID = null;
int iOrder = 1000000;
List<SiteNav> lstContent = new List<SiteNav>();
if (content != null) {
rootContentID = content.Root_ContentID;
siteID = content.SiteID;
parentContentID = content.Parent_ContentID;
SiteNav sn = new SiteNav(content);
sn.NavOrder = iOrder + 100;
lstContent.Add(sn);
}
if (rootContentID != Guid.Empty) {
Guid? gLast = parentContentID;
while (gLast.HasValue) {
SiteNav nav = GetPageNavigation(siteID, gLast.Value, false);
gLast = null;
if (nav != null) {
nav.NavOrder = iOrder;
lstContent.Add(nav);
iOrder--;
gLast = nav.Parent_ContentID;
}
}
}
SiteNav home = FindHome(siteID, false);
home.NavOrder = 0;
if (!lstContent.Where(x => x.Root_ContentID == home.Root_ContentID).Any()) {
lstContent.Add(home);
}
return lstContent.OrderBy(x => x.NavOrder).Where(x => x.PageActive == true && x.IsRetired == false && x.IsUnReleased == false || bActiveOnly == false).ToList();
}