/// <summary> /// Try and find a file in the specified folder that matches name. /// </summary> /// <returns>The full path to the file that matches the requested file /// or null if no matching file is found</returns> internal string FindMatchingFile(string folder, string name) { Debug.Assert(!String.IsNullOrEmpty(folder)); Debug.Assert(!String.IsNullOrEmpty(name)); // Get the virtual path information VirtualDirectory directory = _vpp.GetDirectory(folder); // If the folder specified doesn't exist // or it doesn't contain any files if (directory == null || directory.Files == null) { return(null); } // Go through every file in the directory foreach (VirtualFile file in directory.Files) { string path = file.VirtualPath; // Compare the filename to the filename that we passed if (Path.GetFileName(path).Equals(name, StringComparison.OrdinalIgnoreCase)) { return(path); } } // If no matching files, return null return(null); }
public virtual IEnumerable <ContentRegistration> AnalyzeViews(VirtualPathProvider vpp, HttpContextBase httpContext, IEnumerable <ViewTemplateSource> sources) { var registrations = new List <ContentRegistration>(); foreach (var source in sources) { var virtualDirList = new List <string> { Url.ResolveTokens(Url.ThemesUrlToken) + "Default/Views/" + source.ControllerName, "~/Views/" + source.ControllerName }; virtualDirList.AddRange( from virtualDirectory in vpp.GetDirectory("~/Areas/").Directories.Cast <VirtualDirectory>() let virtualPath = String.Format("~/Areas/{0}/Views/{1}", virtualDirectory.Name, source.ControllerName) select virtualPath); foreach (var virtualDir in virtualDirList.Where(vpp.DirectoryExists)) { logger.Debug(String.Format("Analyzing directory {0}", virtualDir)); foreach (var file in vpp.GetDirectory(virtualDir).Files.OfType <VirtualFile>()) { Debug.Assert(file.Name != null, "file.Name != null"); if (!file.Name.EndsWith(source.ViewFileExtension) || file.Name.StartsWith("_")) { logger.Info(String.Format("Skipping file {0}", file.VirtualPath)); continue; } logger.Debug(String.Format("Analyzing file {0}", file.VirtualPath)); ContentRegistration registration = null; if (httpContext.IsDebuggingEnabled) { registration = AnalyzeView(httpContext, file, source.ControllerName, source.ModelType); } else { try { registration = AnalyzeView(httpContext, file, source.ControllerName, source.ModelType); } catch (Exception ex) { logger.Error(ex); } } if (registration != null) { registrations.Add(registration); } } } } return(registrations); }
public virtual IEnumerable <ContentRegistration> AnalyzeViews(VirtualPathProvider vpp, HttpContextBase httpContext, IEnumerable <ViewTemplateSource> sources) { var registrations = new List <ContentRegistration>(); foreach (var source in sources) { string virtualDir = Url.ResolveTokens(Url.ThemesUrlToken) + "Default/Views/" + source.ControllerName; logger.DebugFormat("Analyzing directory {0}", virtualDir); if (!vpp.DirectoryExists(virtualDir)) { virtualDir = "~/Views/" + source.ControllerName; if (!vpp.DirectoryExists(virtualDir)) { continue; } } foreach (var file in vpp.GetDirectory(virtualDir).Files.OfType <VirtualFile>().Where(f => f.Name.EndsWith(source.ViewFileExtension))) { logger.DebugFormat("Analyzing file {0}", file.VirtualPath); var registration = AnalyzeView(httpContext, file, source.ControllerName, source.ModelType); if (registration != null) { registrations.Add(registration); } } } return(registrations); }
public virtual IEnumerable <ViewTemplateDescription> FindRegistrations(VirtualPathProvider vpp, HttpContextBase httpContext, IEnumerable <ViewTemplateSource> sources) { foreach (var source in sources) { string virtualDir = "~/Views/" + source.ControllerName; if (!vpp.DirectoryExists(virtualDir)) { continue; } List <ViewTemplateDescription> descriptions = new List <ViewTemplateDescription>(); foreach (var file in vpp.GetDirectory(virtualDir).Files.OfType <VirtualFile>().Where(f => f.Name.EndsWith(source.ViewFileExtension))) { var description = AnalyzeView(httpContext, file, source.ControllerName, source.ModelType); if (description != null) { descriptions.Add(description); } } foreach (var description in descriptions) { yield return(description); } } }
VirtualDirectory GetVirtualDirectory(string virtualPath) { if (!vpp.DirectoryExists(VirtualPathUtility.GetDirectory(virtualPath))) { return(null); } return(vpp.GetDirectory(virtualPath)); }
/// <summary> /// Gets the application path. /// </summary> /// <param name="vpp">The VPP.</param> /// <returns></returns> private static string GetApplicationPath(VirtualPathProvider vpp) { if (vpp != null && vpp.DirectoryExists("~")) { VirtualDirectory directory = vpp.GetDirectory("~"); if (directory != null) { return(directory.VirtualPath); } } return((string)null); }
private static string GetApplicationPath(VirtualPathProvider vpp) { if (vpp != null && vpp.DirectoryExists("~")) { VirtualDirectory appDir = vpp.GetDirectory("~"); if (appDir != null) { return(appDir.VirtualPath); } } return(null); }
/// <summary> /// Find all managed Resx Files /// </summary> /// <returns></returns> private IEnumerable <VirtualFile> RecursivelyFindAllResxFiles() { var resxDirectoryName = ComposerConfiguration.ResxLocalizationRepositoryConfiguration.LocalizationResxDirectory; var rootDirectory = _virtualPathProvider.GetDirectory(resxDirectoryName); return(rootDirectory .Children .OfType <VirtualFile>() .Where(x => x.VirtualPath.EndsWith(".resx", StringComparison.InvariantCultureIgnoreCase))); }
internal static ReadOnlyCollection <string> GetAvailableThemes(VirtualPathProvider vpp, string themeDirectory) { VirtualDirectory directory = vpp.GetDirectory(themeDirectory); var themes = new List <string>(); // Go through every file in the directory foreach (VirtualDirectory dir in directory.Directories) { themes.Add(dir.Name); } return(themes.AsReadOnly()); }
/// <summary> /// Find all handlebar dependency in folder /// </summary> /// <param name="virtDirectory">watch virtual directory</param> private Dictionary <string, IEnumerable <string> > GetTamplateDependencyList(string virtDirectory) { var dependencyList = new Dictionary <string, IEnumerable <string> >(); var temaplateDirectory = VirtualPathProvider.GetDirectory(virtDirectory); foreach (VirtualFile file in temaplateDirectory.Files) { var temaplateDependency = GetViewPartialNames(file.VirtualPath); if (temaplateDependency.Any()) { dependencyList.Add(file.Name, temaplateDependency); } } return(dependencyList); }
public ActionResult Theme() { VirtualPathProvider vpp = HostingEnvironment.VirtualPathProvider; VirtualDirectory themDir = vpp.GetDirectory("~/App_Themes"); List <string> themes = themDir.Directories .OfType <VirtualDirectory>() .Select(vd => vd.Name) .ToList(); var sv = WebProfile.Current.theme; var sl = new SelectList(themes, sv); ViewData["theme"] = sl; return(View()); }
public override VirtualDirectory GetDirectory(string virtualDir) { if (!IsEmbeddedPath(virtualDir)) { return(_previous.GetDirectory(virtualDir)); } var resourcePrefix = getNameSpace() + "."; var clientPrefix = String.Format("~/{0}/", _settings.AppClientFilesPrefix); var prefix = virtualDir.Replace(clientPrefix, resourcePrefix).Replace('/', '.'); var resources = typeof(GroupDocsComparisonMvcDemo.BundleConfigurator).Assembly.GetManifestResourceNames() .Where(s => s.StartsWith(prefix)) .ToList(); var files = (resources.Where(resourceName => !resourceName.Contains("main.js")).Select( resourceName => new { resourceName, virtualPath = resourceName.Replace(resourcePrefix, clientPrefix) }) .Select(@t => getEmbeddedFile(@t.virtualPath, @t.resourceName))).ToList(); return(new EmbeddedVirtualDirectory(virtualDir, files)); }
public virtual IEnumerable <ViewTemplateDescription> FindRegistrations(VirtualPathProvider vpp, HttpContextBase httpContext, IEnumerable <ViewTemplateSource> sources) { foreach (var source in sources) { string virtualDir = "~/Views/" + source.ControllerName; if (!vpp.DirectoryExists(virtualDir)) { continue; } List <ViewTemplateDescription> descriptions = new List <ViewTemplateDescription>(); foreach (var file in vpp.GetDirectory(virtualDir).Files.OfType <VirtualFile>().Where(f => f.Name.EndsWith(source.ViewFileExtension))) { var description = AnalyzeView(httpContext, file, source.ControllerName, source.ModelType); if (description != null) { descriptions.Add(description); } } foreach (var description in descriptions) { description.Definition.Add(new TemplateSelectorAttribute { Name = "TemplateName", Title = "Template", AllTemplates = descriptions.Select(d => new TemplateSelectorAttribute.Info { Name = d.Registration.Template, Title = d.Registration.Title }).ToArray(), ContainerName = source.TemplateSelectorContainerName, Required = true, HelpTitle = "The page must be saved for another template's fields to appear", RequiredPermission = Security.Permission.Administer }); } foreach (var description in descriptions) { yield return(description); } } }
public virtual IVirtualDirectory ResolveVirtualDirectory(string virtualPath, IRequest httpReq) { return(virtualPath == VirtualPathProvider.VirtualPathSeparator ? VirtualPathProvider.RootDirectory : VirtualPathProvider.GetDirectory(virtualPath)); }
public override VirtualDirectory GetDirectory(string virtualDir) { return(_previous.GetDirectory(virtualDir)); }
public override VirtualDirectory GetDirectory(string virtualDir) { return(_virtualPathProvider.GetDirectory(virtualDir)); }
public virtual IVirtualFile MoveTo(string destDirVirtualPath, string name) { var destination = VirtualPathProvider.GetDirectory(destDirVirtualPath); return(MoveTo(destination, name)); }
public IEnumerable <string> GetResourcesFiles(string vpath) { var vdir = virtualPathProvider.GetDirectory(vpath); return(vdir.Files.Cast <VirtualFile>().Where(IsResourceFile).Select(v => v.VirtualPath)); }
public override VirtualDirectory GetDirectory(string virtualDir) { return(parent.GetDirectory(virtualDir)); }