public static PortalAliasCollection GetPortalAliasLookup() { PortalAliasCollection objPortalAliasCollection = (PortalAliasCollection)DataCache.GetCache("GetPortalByAlias"); try { if (objPortalAliasCollection == null) { PortalAliasController objPortalAliasController = new PortalAliasController(); objPortalAliasCollection = objPortalAliasController.GetPortalAliases(); DataCache.SetCache("GetPortalByAlias", objPortalAliasCollection); } } catch (Exception exc) { // this is the first data access in Begin_Request and will catch any general connection issues HttpContext objHttpContext = HttpContext.Current; StreamReader objStreamReader; objStreamReader = File.OpenText(objHttpContext.Server.MapPath("~/500.htm")); string strHTML = objStreamReader.ReadToEnd(); objStreamReader.Close(); strHTML = strHTML.Replace("[MESSAGE]", "ERROR: Could not connect to database.<br><br>" + exc.Message); objHttpContext.Response.Write(strHTML); objHttpContext.Response.End(); } return(objPortalAliasCollection); }
public PortalAliasCollection GetPortalAliasByPortalID(int PortalID) { IDataReader dr = DotNetNuke.Data.DataProvider.Instance().GetPortalAliasByPortalID(PortalID); try { PortalAliasCollection objPortalAliasCollection = new PortalAliasCollection(); while (dr.Read()) { PortalAliasInfo objPortalAliasInfo = new PortalAliasInfo(); objPortalAliasInfo.PortalAliasID = Convert.ToInt32(dr["PortalAliasID"]); objPortalAliasInfo.PortalID = Convert.ToInt32(dr["PortalID"]); objPortalAliasInfo.HTTPAlias = Convert.ToString(dr["HTTPAlias"]); objPortalAliasCollection.Add(Convert.ToString(dr["HTTPAlias"]).ToLower(), objPortalAliasInfo); } return(objPortalAliasCollection); } finally { if (dr != null) { dr.Close(); } } }
/// <summary> /// Gets the portal alias by portal. /// </summary> /// <param name="portalId">The portal id.</param> /// <param name="portalAlias">The portal alias.</param> /// <returns>Portal alias.</returns> public static string GetPortalAliasByPortal(int portalId, string portalAlias) { string retValue = ""; //get the portal alias collection from the cache PortalAliasCollection portalAliasCollection = GetPortalAliasLookup(); string httpAlias; bool foundAlias = false; //Do a specified PortalAlias check first PortalAliasInfo objPortalAliasInfo = portalAliasCollection[portalAlias.ToLower()]; if (objPortalAliasInfo != null) { if (objPortalAliasInfo.PortalID == portalId) { //set the alias retValue = objPortalAliasInfo.HTTPAlias; foundAlias = true; } } if (!foundAlias) { //searching from longest to shortest alias ensures that the most specific portal is matched first //In some cases this method has been called with "portalaliases" that were not exactly the real portal alias //the startswith behaviour is preserved here to support those non-specific uses IEnumerable <String> aliases = portalAliasCollection.Keys.Cast <String>().OrderByDescending(k => k.Length); foreach (var currentAlias in aliases) { // check if the alias key starts with the portal alias value passed in - we use // StartsWith because child portals are redirected to the parent portal domain name // eg. child = 'www.domain.com/child' and parent is 'www.domain.com' // this allows the parent domain name to resolve to the child alias ( the tabid still identifies the child portalid ) objPortalAliasInfo = portalAliasCollection[currentAlias]; httpAlias = objPortalAliasInfo.HTTPAlias.ToLower(); if (httpAlias.StartsWith(portalAlias.ToLower()) && objPortalAliasInfo.PortalID == portalId) { retValue = objPortalAliasInfo.HTTPAlias; break; } if (httpAlias.StartsWith("www.")) { httpAlias = httpAlias.Replace("www.", ""); } else { httpAlias = string.Concat("www.", httpAlias); } if (httpAlias.StartsWith(portalAlias.ToLower()) && objPortalAliasInfo.PortalID == portalId) { retValue = objPortalAliasInfo.HTTPAlias; break; } } } return(retValue); }
public PortalAliasCollection GetPortalAliasByPortalID(int PortalID) { var portalAliasCollection = new PortalAliasCollection(); foreach (PortalAliasInfo alias in GetPortalAliasLookup().Values.Cast <PortalAliasInfo>().Where(alias => alias.PortalID == PortalID)) { portalAliasCollection.Add(alias.HTTPAlias, alias); } return(portalAliasCollection); }
public PortalAliasCollection GetPortalAliases() { var aliasCollection = new PortalAliasCollection(); foreach (var alias in this.GetPortalAliasesInternal().Values) { aliasCollection.Add(alias.HTTPAlias, alias); } return(aliasCollection); }
public static PortalAliasCollection GetPortalAliasLookup() { var portalAliasCollection = new PortalAliasCollection(); foreach (var kvp in TestablePortalAliasController.Instance.GetPortalAliases()) { portalAliasCollection.Add(kvp.Key, kvp.Value); } return(portalAliasCollection); }
public PortalAliasCollection GetPortalAliasByPortalID(int PortalID) { var portalAliasCollection = new PortalAliasCollection(); foreach (PortalAliasInfo alias in GetPortalAliasLookup().Values.Cast<PortalAliasInfo>().Where(alias => alias.PortalID == PortalID)) { portalAliasCollection.Add(alias.HTTPAlias, alias); } return portalAliasCollection; }
public static PortalAliasCollection GetPortalAliasLookup() { var portalAliasCollection = new PortalAliasCollection(); var aliasController = new PortalAliasController(); foreach (var kvp in aliasController.GetPortalAliasesInternal()) { portalAliasCollection.Add(kvp.Key, kvp.Value); } return(portalAliasCollection); }
public PortalAliasCollection GetPortalAliasByPortalID(int PortalID) { IDataReader dr = DotNetNuke.Data.DataProvider.Instance().GetPortalAliasByPortalID(PortalID); try { PortalAliasCollection objPortalAliasCollection = new PortalAliasCollection(); while (dr.Read()) { PortalAliasInfo objPortalAliasInfo = new PortalAliasInfo(); objPortalAliasInfo.PortalAliasID = Convert.ToInt32(dr["PortalAliasID"]); objPortalAliasInfo.PortalID = Convert.ToInt32(dr["PortalID"]); objPortalAliasInfo.HTTPAlias = Convert.ToString(dr["HTTPAlias"]); objPortalAliasCollection.Add(Convert.ToString(dr["HTTPAlias"]).ToLower(), objPortalAliasInfo); } return objPortalAliasCollection; } finally { if (dr != null) { dr.Close(); } } }
/// <summary> /// Gets the portal aliases. /// </summary> /// <returns>Portal alias collection.</returns> public PortalAliasCollection GetPortalAliases() { IDataReader dr = DataProvider.Instance().GetPortalAliasByPortalID(-1); try { var portalAliasCollection = new PortalAliasCollection(); while (dr.Read()) { var objPortalAliasInfo = new PortalAliasInfo { PortalAliasID = Convert.ToInt32(dr["PortalAliasID"]), PortalID = Convert.ToInt32(dr["PortalID"]), HTTPAlias = Convert.ToString(dr["HTTPAlias"]) }; portalAliasCollection.Add(Convert.ToString(dr["HTTPAlias"]).ToLower(), objPortalAliasInfo); } return(portalAliasCollection); } finally { CBO.CloseDataReader(dr, true); } }
public static PortalAliasCollection GetPortalAliasLookup() { var portalAliasCollection = new PortalAliasCollection(); foreach (var kvp in TestablePortalAliasController.Instance.GetPortalAliases()) { portalAliasCollection.Add(kvp.Key, kvp.Value); } return portalAliasCollection; }
public static PortalAliasCollection GetPortalAliasLookup() { var portalAliasCollection = new PortalAliasCollection(); var aliasController = new PortalAliasController(); foreach (var kvp in aliasController.GetPortalAliasesInternal()) { portalAliasCollection.Add(kvp.Key, kvp.Value); } return portalAliasCollection; }
/// <summary> /// Gets the portal alias info. /// </summary> /// <param name="PortalAlias">The portal alias.</param> /// <returns>Portal alias info</returns> public static PortalAliasInfo GetPortalAliasInfo(string PortalAlias) { string strPortalAlias; //try the specified alias first PortalAliasInfo objPortalAliasInfo = GetPortalAliasLookup(PortalAlias.ToLower()); //domain.com and www.domain.com should be synonymous if (objPortalAliasInfo == null) { if (PortalAlias.ToLower().StartsWith("www.")) { //try alias without the "www." prefix strPortalAlias = PortalAlias.Replace("www.", ""); } else //try the alias with the "www." prefix { strPortalAlias = string.Concat("www.", PortalAlias); } //perform the lookup objPortalAliasInfo = GetPortalAliasLookup(strPortalAlias.ToLower()); } //allow domain wildcards if (objPortalAliasInfo == null) { //remove the domain prefix ( ie. anything.domain.com = domain.com ) if (PortalAlias.IndexOf(".") != -1) { strPortalAlias = PortalAlias.Substring(PortalAlias.IndexOf(".") + 1); } else //be sure we have a clean string (without leftovers from preceding 'if' block) { strPortalAlias = PortalAlias; } if (objPortalAliasInfo == null) { //try an explicit lookup using the wildcard entry ( ie. *.domain.com ) objPortalAliasInfo = GetPortalAliasLookup("*." + strPortalAlias.ToLower()); } if (objPortalAliasInfo == null) { //try a lookup using the raw domain objPortalAliasInfo = GetPortalAliasLookup(strPortalAlias.ToLower()); } if (objPortalAliasInfo == null) { //try a lookup using "www." + raw domain objPortalAliasInfo = GetPortalAliasLookup("www." + strPortalAlias.ToLower()); } } if (objPortalAliasInfo == null) { //check if this is a fresh install ( no alias values in collection ) PortalAliasCollection objPortalAliasCollection = GetPortalAliasLookup(); if (!objPortalAliasCollection.HasKeys || (objPortalAliasCollection.Count == 1 && objPortalAliasCollection.Contains("_default"))) { //relate the PortalAlias to the default portal on a fresh database installation DataProvider.Instance().UpdatePortalAlias(PortalAlias.ToLower().Trim('/'), UserController.GetCurrentUserInfo().UserID); var objEventLog = new EventLogController(); objEventLog.AddLog("PortalAlias", PortalAlias, PortalController.GetCurrentPortalSettings(), UserController.GetCurrentUserInfo().UserID, EventLogController.EventLogType.PORTALALIAS_UPDATED); //clear the cachekey "GetPortalByAlias" otherwise portalalias "_default" stays in cache after first install DataCache.RemoveCache("GetPortalByAlias"); //try again objPortalAliasInfo = GetPortalAliasLookup(PortalAlias.ToLower()); } } return(objPortalAliasInfo); }
public static string GetPortalByID(int PortalId, string PortalAlias) { string retValue = ""; // get the portal alias collection from the cache PortalAliasCollection objPortalAliasCollection = GetPortalAliasLookup(); string strHTTPAlias; bool bFound = false; //Do a specified PortalAlias check first PortalAliasInfo objPortalAliasInfo = objPortalAliasCollection[PortalAlias.ToLower()]; if (objPortalAliasInfo != null) { if (objPortalAliasInfo.PortalID == PortalId) { // set the alias retValue = objPortalAliasInfo.HTTPAlias; bFound = true; } } //No match so iterate through the alias keys if (!bFound) { foreach (string key in objPortalAliasCollection.Keys) { // check if the alias key starts with the portal alias value passed in - we use // StartsWith because child portals are redirected to the parent portal domain name // eg. child = 'www.domain.com/child' and parent is 'www.domain.com' // this allows the parent domain name to resolve to the child alias ( the tabid still identifies the child portalid ) objPortalAliasInfo = objPortalAliasCollection[key]; strHTTPAlias = objPortalAliasInfo.HTTPAlias.ToLower(); if (strHTTPAlias.StartsWith(PortalAlias.ToLower()) == true && objPortalAliasInfo.PortalID == PortalId) { // set the alias retValue = objPortalAliasInfo.HTTPAlias; goto endOfForLoop; } // domain.com and www.domain.com should be synonymous if (strHTTPAlias.StartsWith("www.")) { // try alias without the "www." prefix strHTTPAlias = strHTTPAlias.Replace("www.", ""); } else // try the alias with the "www." prefix { strHTTPAlias = string.Concat("www.", strHTTPAlias); } if (strHTTPAlias.StartsWith(PortalAlias.ToLower()) == true && objPortalAliasInfo.PortalID == PortalId) { // set the alias retValue = objPortalAliasInfo.HTTPAlias; goto endOfForLoop; } } endOfForLoop: 1.GetHashCode(); //nop } return(retValue); }
/// <summary> /// Gets the portal aliases. /// </summary> /// <returns>Portal alias collection.</returns> public PortalAliasCollection GetPortalAliases() { IDataReader dr = DataProvider.Instance().GetPortalAliasByPortalID(-1); try { var portalAliasCollection = new PortalAliasCollection(); while (dr.Read()) { var objPortalAliasInfo = new PortalAliasInfo { PortalAliasID = Convert.ToInt32(dr["PortalAliasID"]), PortalID = Convert.ToInt32(dr["PortalID"]), HTTPAlias = Convert.ToString(dr["HTTPAlias"]) }; portalAliasCollection.Add(Convert.ToString(dr["HTTPAlias"]).ToLower(), objPortalAliasInfo); } return portalAliasCollection; } finally { CBO.CloseDataReader(dr, true); } }