// GET: /DocumentCategory/345
        public ActionResult ByCategoryID(string enccategoryid)
        {
            // get the category page and loat that page for the content page
            int categoryid            = Crypto.DecryptID(enccategoryid);
            DocumentCategory category = DocumentCategory.LoadByDocumentCategoryID(categoryid);

            if (category == null)
            {
                throw new Beweb.BadUrlException("Category not found with ID of [" + enccategoryid + " (" + categoryid + ")]");
            }
            var data = new ViewModel(category);

            return(View("DocumentCategory", data));
        }
            private void SetCategoryPage(int categoryID)
            {
                DocumentCategory thisCategory = DocumentCategory.LoadByDocumentCategoryID(categoryID);

                if (thisCategory.PageID.HasValue)
                {
                    _categoryPage = Page.LoadByPageID(thisCategory.PageID.ToInt());
                }
                else if (thisCategory.ParentDocumentCategoryID.HasValue)
                {
                    SetCategoryPage(thisCategory.ParentDocumentCategoryID.ToInt());
                }
                else
                {
                    throw new Exception("Category has no page or parent page");
                }
            }
            private string CreateCategoryBreadCrumb(int categoryID, string categoryCrumb)
            {
                string           separator    = " > ";
                string           thisCrumb    = "";
                DocumentCategory thisCategory = DocumentCategory.LoadByDocumentCategoryID(categoryID);

                if (thisCategory.PageID.HasValue)
                {
                    thisCrumb     = "<a href='" + _categoryPage.GetUrl() + "'>" + _categoryPage.Title + "</a>" + separator;
                    thisCrumb    += (categoryCrumb == "")?thisCategory.Title: "<a href='" + Web.Root + "DocumentCategory/" + Crypto.EncryptID(thisCategory.ID) + "'>" + thisCategory.Title + "</a>" + separator;
                    categoryCrumb = thisCrumb + categoryCrumb;
                }
                else if (thisCategory.ParentDocumentCategoryID.HasValue)
                {
                    thisCrumb     = "<a href='" + Web.Root + "DocumentCategory/" + Crypto.EncryptID(thisCategory.ID) + "'>" + thisCategory.Title + "</a>";
                    categoryCrumb = (categoryCrumb == "")?thisCategory.Title: thisCrumb + separator + categoryCrumb;
                    categoryCrumb = CreateCategoryBreadCrumb(thisCategory.ParentDocumentCategoryID.ToInt(), categoryCrumb);
                }
                else
                {
                    throw new Exception("Category has no page or parent page");
                }
                return(categoryCrumb);
            }