/// <summary> /// Gets the URL referenced by "String" with all URL filters. /// </summary> /// <param name="urlType"></param> /// <returns></returns> public NciUrl GetUrl(string urlType) { NciUrl nciUrl = new NciUrl(); string linkTypeKey = urlType.ToLower(); if (UrlFilterDelegates.ContainsKey(linkTypeKey) == true) { UrlFilterDelegate UrlfilterLinkDelegate = UrlFilterDelegates[linkTypeKey]; UrlfilterLinkDelegate(linkTypeKey, nciUrl); } else { throw new PageAssemblyException(String.Format("Unknown link type \"{0}\"", urlType)); } return(nciUrl); }
/// <summary> /// Adds a URL filter which modifies the URL referenced by "string" when GetUrl is called. /// </summary> /// <param name="urlType">Pretty URL or Cannonical URL</param> /// <param name="fieldFilter"></param> public void AddUrlFilter(string urlType, UrlFilterDelegate fieldFilter) { if (string.IsNullOrEmpty(urlType)) { throw new ArgumentException("The urlType parameter may not be null or empty."); } string linkTypeKey = urlType.ToLower(); if (UrlFilterDelegates.ContainsKey(linkTypeKey) == false) { UrlFilterDelegates.Add(linkTypeKey, fieldFilter); } else { UrlFilterDelegates[linkTypeKey] += fieldFilter; } }