Example #1
0
        private void GetBreadCrumbsRecursively(ArrayList objBreadCrumbs, int intTabId)
        {
            // find the tab in the desktoptabs collection
            bool    blnFound = false;
            TabInfo foundTab = null;

            foreach (TabInfo objTab in this.DesktopTabs)
            {
                if (objTab.TabID == intTabId)
                {
                    blnFound = true;
                    foundTab = objTab;
                    break;
                }
            }

            // if tab was found
            if (blnFound)
            {
                // add tab to breadcrumb collection
                objBreadCrumbs.Insert(0, foundTab.Clone());

                // get the tab parent
                if (!Null.IsNull(foundTab.ParentId))
                {
                    GetBreadCrumbsRecursively(objBreadCrumbs, foundTab.ParentId);
                }
            }
        }
        public virtual TabInfo GetActiveTab(int tabId, PortalSettings portalSettings)
        {
            var portalId   = portalSettings.PortalId;
            var portalTabs = TabController.Instance.GetTabsByPortal(portalId);
            var hostTabs   = TabController.Instance.GetTabsByPortal(Null.NullInteger);

            //Check portal
            TabInfo activeTab = GetTab(tabId, portalTabs);

            if (activeTab == null)
            {
                //check host
                activeTab = GetTab(tabId, hostTabs);
            }

            if (activeTab == null)
            {
                //check splash tab
                activeTab = GetSpecialTab(portalId, portalSettings.SplashTabId);
            }

            if (activeTab == null)
            {
                //check home tab
                activeTab = GetSpecialTab(portalId, portalSettings.HomeTabId);
            }

            if (activeTab == null)
            {
                TabInfo tab = (from TabInfo t in portalTabs.AsList() where !t.IsDeleted && t.IsVisible && t.HasAVisibleVersion select t).FirstOrDefault();

                if (tab != null)
                {
                    activeTab = tab.Clone();
                }
            }

            if (activeTab != null)
            {
                if (Null.IsNull(activeTab.StartDate))
                {
                    activeTab.StartDate = DateTime.MinValue;
                }
                if (Null.IsNull(activeTab.EndDate))
                {
                    activeTab.EndDate = DateTime.MaxValue;
                }
            }

            return(activeTab);
        }
        private TabInfo GetSpecialTab(int portalId, int tabId)
        {
            TabInfo activeTab = null;

            if (tabId > 0)
            {
                TabInfo tab = TabController.Instance.GetTab(tabId, portalId, false);
                if (tab != null)
                {
                    activeTab = tab.Clone();
                }
            }

            return(activeTab);
        }
Example #4
0
        private void GetBreadCrumbsRecursively(ref ArrayList objBreadCrumbs, int intTabId)
        {
            TabInfo       objTab           = null;
            TabController objTabController = new TabController();
            TabCollection portalTabs       = objTabController.GetTabsByPortal(PortalId);
            TabCollection hostTabs         = objTabController.GetTabsByPortal(Null.NullInteger);
            bool          blnFound         = portalTabs.TryGetValue(intTabId, out objTab);

            if (!blnFound)
            {
                blnFound = hostTabs.TryGetValue(intTabId, out objTab);
            }
            if (blnFound)
            {
                objBreadCrumbs.Insert(0, objTab.Clone());
                if (!Null.IsNull(objTab.ParentId))
                {
                    GetBreadCrumbsRecursively(ref objBreadCrumbs, objTab.ParentId);
                }
            }
        }
        public static LocalizedTabInfo GetLocalizedTab(int tabId, int portalId, bool fromCache)
        {
            TabInfo tabInfo = TabController.Instance.GetTab(tabId, portalId);

            if (tabInfo == null)
            {
                return(null);
            }
            else if (fromCache)
            {
                return(GetLocalizedTab(tabInfo, true));
            }
            else
            {
                var tabController = new TabLocaleController();
                var localizedTab  = new LocalizedTabInfo(tabInfo.Clone())
                {
                    LocaleList = tabController.GetListByTabID(tabId).ToList()
                };
                return(localizedTab);
            }
        }
Example #6
0
        private bool VerifyPortalTab(int PortalId, int TabId)
        {
            TabInfo       objTab           = null;
            TabInfo       objSplashTab     = null;
            TabInfo       objHomeTab       = null;
            bool          isVerified       = false;
            TabController objTabController = new TabController();
            TabCollection portalTabs       = objTabController.GetTabsByPortal(PortalId);
            TabCollection hostTabs         = objTabController.GetTabsByPortal(Null.NullInteger);

            if (TabId != Null.NullInteger)
            {
                if (portalTabs.TryGetValue(TabId, out objTab))
                {
                    if (!objTab.IsDeleted)
                    {
                        this.ActiveTab = objTab.Clone();
                        isVerified     = true;
                    }
                }
            }
            if (!isVerified && TabId != Null.NullInteger)
            {
                if (hostTabs.TryGetValue(TabId, out objTab))
                {
                    if (!objTab.IsDeleted)
                    {
                        this.ActiveTab = objTab.Clone();
                        isVerified     = true;
                    }
                }
            }
            if (!isVerified && this.SplashTabId > 0)
            {
                objSplashTab   = objTabController.GetTab(this.SplashTabId, PortalId, false);
                this.ActiveTab = objSplashTab.Clone();
                isVerified     = true;
            }
            if (!isVerified && this.HomeTabId > 0)
            {
                objHomeTab     = objTabController.GetTab(this.HomeTabId, PortalId, false);
                this.ActiveTab = objHomeTab.Clone();
                isVerified     = true;
            }
            if (!isVerified)
            {
                foreach (TabInfo tab in portalTabs.AsList())
                {
                    if (!tab.IsDeleted && tab.IsVisible)
                    {
                        this.ActiveTab = tab.Clone();
                        isVerified     = true;
                        break;
                    }
                }
            }
            if (Null.IsNull(this.ActiveTab.StartDate))
            {
                this.ActiveTab.StartDate = System.DateTime.MinValue;
            }
            if (Null.IsNull(this.ActiveTab.EndDate))
            {
                this.ActiveTab.EndDate = System.DateTime.MaxValue;
            }
            return(isVerified);
        }
Example #7
0
        /// <summary>
        /// The VerifyPortalTab method verifies that the TabId/PortalId combination
        /// is allowed and returns default/home tab ids if not
        /// </summary>
        /// <returns></returns>
        /// <remarks>
        /// </remarks>
        ///	<param name="PortalId">The Portal's id</param>
        ///	<param name="TabId">The current tab's id</param>
        private bool VerifyPortalTab(int PortalId, int TabId)
        {
            TabInfo       objTab       = null;
            TabInfo       objSplashTab = null;
            TabInfo       objHomeTab   = null;
            bool          isVerified   = false;
            TabController objTabs      = new TabController();

            // find the tab in the desktoptabs collection
            if (TabId != Null.NullInteger)
            {
                foreach (TabInfo objTabWithinLoop in this.DesktopTabs)
                {
                    objTab = objTabWithinLoop;
                    if (objTabWithinLoop.TabID == TabId)
                    {
                        //Check if Tab has been deleted (is in recycle bin)
                        if (!(objTabWithinLoop.IsDeleted))
                        {
                            this.ActiveTab = objTabWithinLoop.Clone();
                            isVerified     = true;
                            break;
                        }
                    }
                }
            }

            // if tab was not found
            if (!isVerified & this.SplashTabId > 0)
            {
                // use the splash tab ( if specified )
                objSplashTab   = objTabs.GetTab(this.SplashTabId, PortalId, false);
                this.ActiveTab = objSplashTab.Clone();
                isVerified     = true;
            }

            // if tab was not found
            if (!isVerified & this.HomeTabId > 0)
            {
                // use the home tab ( if specified )
                objHomeTab     = objTabs.GetTab(this.HomeTabId, PortalId, false);
                this.ActiveTab = objHomeTab.Clone();
                isVerified     = true;
            }

            // if tab was not found
            if (!isVerified)
            {
                // get the first tab in the collection (that is valid)
                for (int i = 0; i <= this.DesktopTabs.Count; i++)
                {
                    objTab = (TabInfo)(this.DesktopTabs[i]);
                    //Check if Tab has not been deleted (not in recycle bin) and is visible
                    if (!(objTab.IsDeleted) & objTab.IsVisible)
                    {
                        this.ActiveTab = objTab.Clone();
                        isVerified     = true;
                        break;
                    }
                }
            }

            if (Null.IsNull(this.ActiveTab.StartDate))
            {
                this.ActiveTab.StartDate = DateTime.MinValue;
            }
            if (Null.IsNull(this.ActiveTab.EndDate))
            {
                this.ActiveTab.EndDate = DateTime.MaxValue;
            }

            return(isVerified);
        }