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); }
/// <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);
public static IVirtualNode GetVirtualNode(this IVirtualPathProvider pathProvider, string virtualPath) { return((IVirtualNode)pathProvider.GetFile(virtualPath) ?? pathProvider.GetDirectory(virtualPath)); }
public void AddFile_AddFileToProvider() { var name = "Test.txt"; var file = Provider.CreateFile(name, ""); Assert.That(Provider.GetFile(name), Is.EqualTo(file)); }
public object fileContents(IVirtualPathProvider vfs, string virtualPath) => vfs.GetFile(virtualPath).GetContents();
public IVirtualFile AssertFile(IVirtualPathProvider vfs, string virtualPath) => AppHost.VirtualFileSources.GetMemoryVirtualFiles().GetFile(virtualPath) ?? vfs.GetFile(virtualPath) ?? throw HttpError.NotFound($"{virtualPath} does not exist");
public IVirtualFile AssertFile(IVirtualPathProvider vfs, string virtualPath) => vfs.GetFile(virtualPath) ?? throw HttpError.NotFound($"{virtualPath} does not exist");