Example #1
0
        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;
        }
Example #2
0
        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;
        }
Example #3
0
        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;
        }