VirtualDirectory GetVirtualDirectory(string virtualPath)
        {
            if (!vpp.DirectoryExists(VirtualPathUtility.GetDirectory(virtualPath)))
            {
                return(null);
            }

            return(vpp.GetDirectory(virtualPath));
        }
        private bool IsRoutedRequest(HttpRequest request)
        {
            string path = request.AppRelativeCurrentExecutionFilePath;

            if (path != "~/" && (_virtualPathProvider.FileExists(path) || _virtualPathProvider.DirectoryExists(path)))
            {
                return(false);
            }
            return(true);
        }
 private static string GetApplicationPath(VirtualPathProvider vpp)
 {
     if (vpp != null && vpp.DirectoryExists("~"))
     {
         VirtualDirectory appDir = vpp.GetDirectory("~");
         if (appDir != null)
         {
             return(appDir.VirtualPath);
         }
     }
     return(null);
 }
        /// <summary>
        /// Ensures the RESX directory exists.
        /// </summary>
        /// <param name="resxDirectoryName">Name of the RESX directory.</param>
        /// <exception cref="System.ArgumentNullException">resxDirectoryName</exception>
        /// <exception cref="System.ArgumentException">The resource directory  + resxDirectoryName +  does not exists.</exception>
        private void EnsureResxDirectoryExists(string resxDirectoryName)
        {
            if (string.IsNullOrEmpty(resxDirectoryName))
            {
                throw new ArgumentNullException("resxDirectoryName");
            }

            if (!_virtualPathProvider.DirectoryExists(resxDirectoryName))
            {
                throw new ArgumentException("The resource directory " + resxDirectoryName + " does not exists.");
            }
        }
Exemple #5
0
 /// <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);
 }
Exemple #6
0
            public HelpCategory(string virtualPath)
                : base(virtualPath)
            {
                if (virtualPath == null)
                {
                    throw new ArgumentNullException("virtualPath");
                }

                if (!VirtualPathProvider.DirectoryExists(virtualPath))
                {
                    throw new ArgumentException("虚拟路径不是一个目录", "virtualPath");
                }
            }
Exemple #7
0
        bool VirtualDirectoryExists(string virtualPath, HttpWorkerRequest worker)
        {
            VirtualPathProvider vpp = HostingEnvironment.VirtualPathProvider;

            // TODO: Remove the second condition of the "if" statement (it is only a workaround) involving DefaultVirtualPathProvider as soon as Mono's DefaultVirtualPathProvider.DirectoryExists method works properly (i.e., the indirectly-called HostingEnvironment.MapPath method should not require an HttpContext.Current.Request object to do its work; also see the comment in the ApplicationHost.MapPath method above)
            if (vpp != null && !vpp.GetType().FullName.Equals("System.Web.Hosting.DefaultVirtualPathProvider", StringComparison.Ordinal))
            {
                return(vpp.DirectoryExists(virtualPath));
            }

            string physicalPath = (worker != null) ? worker.MapPath(virtualPath) : MapPath(virtualPath);

            return(Directory.Exists(physicalPath));
        }
        public void WhenPathChangesTest()
        {
            //监控文件
            WhenPathChanges("~/c/a.txt", VirtualPathProvider.FileExists, s => VirtualPathProvider.CreateFile(s, stream => { }), VirtualPathProvider.DeleteFile,
                            s =>
            {
                var path = VirtualPathProvider.MapPath(s);
                File.WriteAllText(path, "Test");
            });
            //监控目录
            WhenPathChanges("~/c/a", VirtualPathProvider.DirectoryExists, VirtualPathProvider.CreateDirectory, VirtualPathProvider.DeleteDirectory, null);

            if (VirtualPathProvider.DirectoryExists("~/c"))
            {
                VirtualPathProvider.DeleteDirectory("~/c");
            }
        }
Exemple #9
0
        public RouteData GetRouteData(HttpContextBase httpContext)
        {
            if (httpContext == null)
            {
                throw new ArgumentNullException("httpContext");
            }

            if (httpContext.Request == null)
            {
                throw new ArgumentException("The context does not contain any request data.", "httpContext");
            }
#if NET_4_0
            if (Count == 0)
            {
                return(null);
            }
#endif
            if (!RouteExistingFiles)
            {
                var path = httpContext.Request.AppRelativeCurrentExecutionFilePath;
                VirtualPathProvider vpp = HostingEnvironment.VirtualPathProvider;
                if (path != "~/" && vpp != null && (vpp.FileExists(path) || vpp.DirectoryExists(path)))
                {
                    return(null);
                }
            }
#if !NET_4_0
            if (Count == 0)
            {
                return(null);
            }
#endif
            foreach (RouteBase rb in this)
            {
                var rd = rb.GetRouteData(httpContext);
                if (rd != null)
                {
                    return(rd);
                }
            }

            return(null);
        }
Exemple #10
0
        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);
                }
            }
        }
        internal Exception IncludeDirectory(string directoryVirtualPath, string searchPattern, PatternType patternType, bool searchSubdirectories, params IItemTransform[] transforms)
        {
            Exception error = ExceptionUtil.ValidateVirtualPath(directoryVirtualPath, "directoryVirtualPath");

            if (error != null)
            {
                return(error);
            }
            if (ExceptionUtil.IsPureWildcardSearchPattern(searchPattern))
            {
                return(new ArgumentException(OptimizationResources.InvalidWildcardSearchPattern, "searchPattern"));
            }

            if (VirtualPathProvider == null || VirtualPathProvider.DirectoryExists(directoryVirtualPath))
            {
                Add(new BundleDirectoryItem(directoryVirtualPath, searchPattern, patternType, searchSubdirectories, transforms));
            }
            else
            {
                return(new ArgumentException(OptimizationResources.BundleDirectory_does_not_exist, "directoryVirtualPath"));
            }
            return(null);
        }
Exemple #12
0
 public override bool DirectoryExists(string virtualDir)
 {
     return(_previous.DirectoryExists(virtualDir));
 }
 public override bool DirectoryExists(string virtualDir)
 {
     return(_virtualPathProvider.DirectoryExists(virtualDir));
 }
 public override bool DirectoryExists(string virtualDir)
 {
     return(IsEmbeddedPath(virtualDir) || _previous.DirectoryExists(virtualDir));
 }
Exemple #15
0
 public override bool DirectoryExists(string virtualDir)
 {
     return(parent.DirectoryExists(virtualDir));
 }
 public bool IsVirtualDirectory(string vpath)
 {
     return(virtualPathProvider.DirectoryExists(vpath));
 }