public List<TabInfo> GetTabsToLocalize(int portalId, string code) { var results = new List<TabInfo>(); var portalTabs = new TabController().GetTabsByPortal(portalId); foreach (var kvp in portalTabs.Where(kvp => kvp.Value.CultureCode == PortalSettings.DefaultLanguage && !kvp.Value.IsDeleted)) { if (kvp.Value.LocalizedTabs.Count == 0) { results.Add(kvp.Value); } else { bool tabLocalizedInCulture = kvp.Value.LocalizedTabs.Any(localizedTab => localizedTab.Value.CultureCode == code); if (!tabLocalizedInCulture) { results.Add(kvp.Value); } } } return results; }
/// <summary> /// Deletes all redirection rules that were set for pages that have been soft or hard deleted. /// </summary> /// <param name="portalId"></param> public void PurgeInvalidRedirections(int portalId) { var allTabs = new TabController().GetTabsByPortal(portalId); var redirects = GetRedirectionsByPortal(portalId); //remove rules for deleted source tabs foreach (var r in redirects.Where(r => r.SourceTabId != Null.NullInteger && allTabs.Where(t => t.Key == r.SourceTabId).Count() < 1)) { Delete(portalId, r.Id); } //remove rules for deleted target tabs redirects = GetRedirectionsByPortal(portalId); //fresh get of rules in case some were deleted above foreach (var r in redirects.Where(r => r.TargetType == TargetType.Tab && allTabs.Where(t => t.Key == int.Parse(r.TargetValue.ToString())).Count() < 1)) { Delete(portalId, r.Id); } //remove rules for deleted target portals redirects = GetRedirectionsByPortal(portalId); //fresh get of rules in case some were deleted above var allPortals = new PortalController().GetPortals(); foreach (var r in redirects.Where(r => r.TargetType == TargetType.Portal)) { bool found = false; foreach (PortalInfo portal in allPortals) { if (portal.PortalID == int.Parse(r.TargetValue.ToString())) { found = true; break; } } if (!found) Delete(portalId, r.Id); } }
private void BindSettingControls() { // Toggle fields if a redirect already exists for the Portal Home Page var defaultRedirect = HomePageRedirectExists(); // Populate Pages dropdowns var tabs = new TabController().GetTabsByPortal(ModuleContext.PortalId).AsList().Where(IsVisible); cboSourcePage.DataTextField = "IndentedTabName"; cboSourcePage.DataValueField = "TabID"; cboSourcePage.DataSource = tabs; cboSourcePage.DataBind(); cboTargetPage.DataTextField = "IndentedTabName"; cboTargetPage.DataValueField = "TabID"; //if set a default redirect then hide home page in target page list. if(!defaultRedirect) { cboTargetPage.DataSource = tabs.Where(t => t.TabID != ModuleContext.PortalSettings.HomeTabId); } else { cboTargetPage.DataSource = tabs; } cboTargetPage.DataBind(); // Populating Portals dropdown var portalController = new PortalController(); var portals = portalController.GetPortals().Cast<PortalInfo>().Where(p => p.PortalID != ModuleContext.PortalId).ToList(); if (portals.Count > 0) { cboPortal.DataSource = portals; cboPortal.DataTextField = "PortalName"; cboPortal.DataValueField = "PortalID"; cboPortal.DataBind(); } else { optRedirectTarget.Items[0].Enabled = false; optRedirectTarget.Items[0].Selected = false; optRedirectTarget.Items[1].Selected = true; } cboSourcePage.Visible = defaultRedirect; lblHomePage.Visible = !defaultRedirect; lblRedirectName.Visible = defaultRedirect; txtRedirectName.Visible = defaultRedirect; }