public static bool IsManagedPath(string rawUrl, out ManagedPath managedPath) { if (rawUrl == null) { throw new ArgumentNullException("rawUrl"); } managedPath = null; bool isManagedPath = false; IList<ManagedPath> managedPaths = ManagedPathPlugin.Instance.GetPaths(); foreach(ManagedPath path in managedPaths) { //path contains the syntax like /search/{type}/{q} string pathExtended = path.Path; string pathPrefix = pathExtended; int index = pathExtended.IndexOf('{'); if (index != -1) { pathPrefix = pathExtended.Substring(0, index); } if (rawUrl.StartsWith(pathPrefix)) { managedPath = path; isManagedPath = true; break; } } return isManagedPath; }
private static IList<ManagedPath> GetWellDefinedPaths() { List<ManagedPath> paths = new List<ManagedPath>(); ManagedPath path = new ManagedPath() { Name = "default", Path = "page/{p}/{q}", ResolvedPath = "~/default.aspx" }; path.AddDefault("q", string.Empty); path.AddDefault("p", "1"); paths.Add(path); // search path path = new ManagedPath() { Name = "search", Path = "search/{q}/{t}/{p}", ResolvedPath = "~/pages/search.aspx" }; path.AddDefault("q", string.Empty); path.AddDefault("t", "all"); // type path.AddDefault("p", "1"); paths.Add(path); return paths; }
public void Save(ManagedPath path) { if (path == null) { throw new ArgumentNullException("path"); } logger.Log(LogLevel.Debug, "Saving managed path - {0}", path.Name); PluginStore.Instance.Save(this, path); refresh = true; }