/// <summary> /// Read the custom redirects from the dynamic data store, and /// stores them in the CustomRedirect property /// </summary> protected virtual CustomRedirectCollection LoadCustomRedirects() { var customRedirects = new CustomRedirectCollection(); foreach (var redirect in _dataStoreHandler.GetCustomRedirects(false)) customRedirects.Add(redirect); return customRedirects; }
/// <summary> /// Parses the xml file and reads all redirects. /// </summary> /// <returns>A collection of CustomRedirect objects</returns> public CustomRedirectCollection Load() { const string URLPATH = "/redirects/urls/url"; const string NEWURL = "new"; const string OLDURL = "old"; const string SKIPWILDCARD = "onWildCardMatchSkipAppend"; var redirects = new CustomRedirectCollection(); // Parse all url nodes XmlNodeList nodes = _customRedirectsXmlFile.SelectNodes(URLPATH); foreach (XmlNode node in nodes) { // Each url new url can have several old values // we need to create a redirect object for each pair XmlNode newNode = node.SelectSingleNode(NEWURL); XmlNodeList oldNodes = node.SelectNodes(OLDURL); foreach (XmlNode oldNode in oldNodes) { bool skipWildCardAppend = false; XmlAttribute skipWildCardAttr = oldNode.Attributes[SKIPWILDCARD]; if (skipWildCardAttr != null) { // If value parsing fails, it will be false by default. We do // not really care to check if it fails, as we cannot do anything // about it (throwing an exception is not a good idea here) bool.TryParse(skipWildCardAttr.Value, out skipWildCardAppend); } // Create new custom redirect nodes var redirect = new CustomRedirect(oldNode.InnerText, newNode.InnerText, skipWildCardAppend, true, true, 0); redirects.Add(redirect); } } return redirects; }