Exemple #1
0
    public void Can_search_modules_resources_folder()
    {
        var uiIndexFile = ssResources.GetFile("/modules/ui/index.html");

        Assert.That(uiIndexFile, Is.Not.Null);

        var sharedComponentFiles = ssResources.GetAllMatchingFiles("/modules/shared/*.html").ToList();

        Assert.That(sharedComponentFiles.Count, Is.GreaterThanOrEqualTo(8));

        var componentFiles = ssResources.GetAllMatchingFiles("/modules/ui/components/*.html").ToList();

        Assert.That(componentFiles.Count, Is.GreaterThanOrEqualTo(6));

        var adminUiJsFiles = ssResources.GetAllMatchingFiles("/modules/admin-ui/js/*.js").ToList();

        Assert.That(adminUiJsFiles.Count, Is.GreaterThanOrEqualTo(3));

        var adminUiCssFiles = ssResources.GetAllMatchingFiles("/modules/admin-ui/css/*.css").ToList();

        Assert.That(adminUiCssFiles.Count, Is.GreaterThanOrEqualTo(1));

        var adminUiHtmlFiles = ssResources.GetAllMatchingFiles("/modules/admin-ui/components/*.html").ToList();

        Assert.That(adminUiHtmlFiles.Count, Is.GreaterThanOrEqualTo(3));
    }
        public IVirtualFile ResolveFile(IVirtualPathProvider virtualFiles, string fromVirtualPath, string virtualPath)
        {
            IVirtualFile file = null;

            var pathMapKey  = nameof(ResolveFile) + ">" + fromVirtualPath;
            var pathMapping = Context.GetPathMapping(pathMapKey, virtualPath);

            if (pathMapping != null)
            {
                file = virtualFiles.GetFile(pathMapping);
                if (file != null)
                {
                    return(file);
                }
                Context.RemovePathMapping(pathMapKey, pathMapping);
            }

            var tryExactMatch = virtualPath.IndexOf('/') >= 0; //if nested path specified, look for an exact match first

            if (tryExactMatch)
            {
                file = virtualFiles.GetFile(virtualPath);
                if (file != null)
                {
                    Context.SetPathMapping(pathMapKey, virtualPath, virtualPath);
                    return(file);
                }
            }

            if (file == null)
            {
                var parentPath = fromVirtualPath.IndexOf('/') >= 0
                    ? fromVirtualPath.LastLeftPart('/')
                    : "";

                do
                {
                    var seekPath = parentPath.CombineWith(virtualPath);
                    file = virtualFiles.GetFile(seekPath);
                    if (file != null)
                    {
                        Context.SetPathMapping(pathMapKey, virtualPath, seekPath);
                        return(file);
                    }

                    if (parentPath == "")
                    {
                        break;
                    }

                    parentPath = parentPath.IndexOf('/') >= 0
                        ? parentPath.LastLeftPart('/')
                        : "";
                } while (true);
            }
            return(null);
        }
        private bool TryPath(string path, string modifier, out string result)
        {
            var directory   = virtualPathProvider.GetDirectory(path);
            var fileName    = virtualPathProvider.GetFile(path);
            var pathToProbe = modifier.HasValue() ? virtualPathProvider.CombinePaths(directory, modifier) + Path.AltDirectorySeparatorChar + fileName : path;

            result = virtualPathProvider.FileExists(pathToProbe) ? pathToProbe : null;

            return(result != null);
        }
        public static IVirtualFile ResolveFile(IVirtualPathProvider virtualFiles, string fromVirtualPath, string virtualPath)
        {
            IVirtualFile file          = null;
            var          tryExactMatch = virtualPath.IndexOf('/') >= 0; //if nested path specified, look for an exact match first

            if (tryExactMatch)
            {
                file = virtualFiles.GetFile(virtualPath);
            }

            if (file == null)
            {
                var parentPath = fromVirtualPath.IndexOf('/') >= 0
                    ? fromVirtualPath.LastLeftPart('/')
                    : "";

                do
                {
                    var seekPath = parentPath.CombineWith(virtualPath);
                    file = virtualFiles.GetFile(seekPath);
                    if (file != null)
                    {
                        break;
                    }

                    if (parentPath == "")
                    {
                        break;
                    }

                    parentPath = parentPath.IndexOf('/') >= 0
                        ? parentPath.LastLeftPart('/')
                        : "";
                } while (true);
            }
            return(file);
        }
Exemple #5
0
        /// <summary>
        /// Get the path to the script.
        /// </summary>
        /// <param name="virtualPath">The virtual path.</param>
        /// <param name="version">The version.</param>
        /// <param name="extensions">The collection of extensions.</param>
        /// <returns>The path.</returns>
        private string ProbePath(string virtualPath, string version, IEnumerable <string> extensions)
        {
            string result = null;

            Func <string, string> fixPath = path =>
            {
                string directory = _virtualPathProvider.GetDirectory(path);
                string fileName  = _virtualPathProvider.GetFile(path);

                if (!directory.EndsWith(version + Path.AltDirectorySeparatorChar, StringComparison.OrdinalIgnoreCase))
                {
                    string newDirectory = _virtualPathProvider.CombinePaths(directory, version);
                    string newPath      = newDirectory + Path.AltDirectorySeparatorChar + fileName;

                    if (_virtualPathProvider.FileExists(newPath))
                    {
                        return(newPath);
                    }
                }

                return(path);
            };

            foreach (string extension in extensions)
            {
                string changedPath    = Path.ChangeExtension(virtualPath, extension);
                string newVirtualPath = string.IsNullOrEmpty(version) ? changedPath : fixPath(changedPath);

                if (_virtualPathProvider.FileExists(newVirtualPath))
                {
                    result = newVirtualPath;
                    break;
                }
            }

            if (string.IsNullOrEmpty(result))
            {
                result = virtualPath;

                if (!_virtualPathProvider.FileExists(result))
                {
                    throw new FileNotFoundException("The specified file does not exist : '" + result + "'");
                }
            }

            // Return the virtual file.
            return(result);
        }
 public byte[] fileReadAllBytes(IVirtualPathProvider vfs, string virtualPath) => vfs.GetFile(virtualPath)?.ReadAllBytes();
 public string fileReadAll(IVirtualPathProvider vfs, string virtualPath) => vfs.GetFile(virtualPath)?.ReadAllText();
 public IVirtualFile file(IVirtualPathProvider vfs, string virtualPath) => vfs.GetFile(virtualPath);
Exemple #9
0
 public static IVirtualNode GetVirtualNode(this IVirtualPathProvider pathProvider, string virtualPath)
 {
     return((IVirtualNode)pathProvider.GetFile(virtualPath)
            ?? pathProvider.GetDirectory(virtualPath));
 }
Exemple #10
0
        public void AddFile_AddFileToProvider()
        {
            var name = "Test.txt";
            var file = Provider.CreateFile(name, "");

            Assert.That(Provider.GetFile(name), Is.EqualTo(file));
        }
Exemple #11
0
 public object fileContents(IVirtualPathProvider vfs, string virtualPath) =>
 vfs.GetFile(virtualPath).GetContents();
Exemple #12
0
 public IVirtualFile AssertFile(IVirtualPathProvider vfs, string virtualPath) =>
 AppHost.VirtualFileSources.GetMemoryVirtualFiles().GetFile(virtualPath)
 ?? vfs.GetFile(virtualPath)
 ?? throw HttpError.NotFound($"{virtualPath} does not exist");
Exemple #13
0
 public IVirtualFile AssertFile(IVirtualPathProvider vfs, string virtualPath) => vfs.GetFile(virtualPath)
 ?? throw HttpError.NotFound($"{virtualPath} does not exist");