예제 #1
0
        private List <string> GetValidsVirtualPath(string viewName, RouteValueDictionary customRoute, RouteValueDictionary defaultRoute /*, Module module*/)
        {
            var validsPath = new List <string>();

            var controller = defaultRoute["controller"];
            var area       = customRoute.ContainsKey("area") ? customRoute["area"].ToString() : String.Empty;

            // Physical Files
            foreach (var format in PartialViewLocationFormats)
            {
                validsPath.Add(string.Format(format, viewName, controller));
            }

            foreach (var format in AreaPartialViewLocationFormats)
            {
                validsPath.Add(string.Format(format, viewName, controller, area));
            }

            // Virtual Files
            foreach (var format in PartialViewLocationFormats)
            {
                validsPath.Add(VirtualFileHelper.GetVirtualModulePath(String.Format(format, viewName, controller), area));
            }

            foreach (var format in AreaPartialViewLocationFormats)
            {
                validsPath.Add(VirtualFileHelper.GetVirtualModulePath(String.Format(format, viewName, controller, area), area));
            }

            return(validsPath);
        }
        public override VirtualFile GetFile(string virtualPath)
        {
            if (VirtualFileHelper.IsModuleRessource(virtualPath))
            {
                var fileExist = base.FileExists(VirtualFileHelper.GetRealFileName(virtualPath, true));

                if (fileExist)
                {
                    return(new VirtualPhysicalFile(virtualPath));
                }

                return(new VirtualRazorVirtualFile(virtualPath));
            }

            return(base.GetFile(virtualPath));
        }
        public override bool FileExists(string virtualPath)
        {
            bool fileExist;

            if (VirtualFileHelper.IsModuleRessource(virtualPath))
            {
                // File exist
                fileExist = base.FileExists(VirtualFileHelper.GetRealFileName(virtualPath, true));

                if (!fileExist)
                {
                    fileExist = VirtualFileHelper.ModuleFileExists(virtualPath);
                }
            }
            else
            {
                fileExist = base.FileExists(virtualPath);
            }

            return(fileExist);
        }
 public override CacheDependency GetCacheDependency(string virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart)
 {
     return(VirtualFileHelper.IsModuleRessource(virtualPath) ? null : base.GetCacheDependency(virtualPath, virtualPathDependencies, utcStart));
 }
        //Important sinon mvc regarde dans le répertoire si le fichier change...
        //TODO: Optimiser
        #region CacheDependency

        public override string GetFileHash(string virtualPath, IEnumerable virtualPathDependencies)
        {
            return(VirtualFileHelper.IsModuleRessource(virtualPath) ? GetFileHash(virtualPath) :
                   base.GetFileHash(virtualPath, virtualPathDependencies));
        }
예제 #6
0
 public override Stream Open()
 {
     return(VirtualFileHelper.GetResourceStream(_path));
 }
        public override Stream Open()
        {
            var fileName = string.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, VirtualFileHelper.GetRealFileName(_path, false));

            if (!File.Exists(fileName))
            {
                return(null);
            }

            var memoryStream = new MemoryStream();

            using (var fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read))
            {
                fileStream.CopyTo(memoryStream);
                fileStream.Close();
            }

            return(memoryStream);
        }