Exemplo n.º 1
0
        public byte[] Package(string pathToFolder, IEnumerable <VirtualFileWrapper> inFolderFiles)
        {
            // pack the things from the form into zip file
            string tmpZipFile = Path.GetTempFileName();

            using (var zipFile = new ZipFile())
            {
                var directoryInfo = new DirectoryInfo(pathToFolder);

                // get all files from this directory into zip archive
                foreach (FileInfo fileInfo in directoryInfo.GetFiles())
                {
                    // find this file in in folderFiles
                    FileInfo           info = fileInfo;
                    VirtualFileWrapper item = inFolderFiles
                                              .Where(x => x.FileName.Equals(info) && x.ToPackage == false)
                                              .DefaultIfEmpty(null)
                                              .SingleOrDefault();

                    if (item != null)
                    {
                        continue;
                    }

                    zipFile.AddFile(fileInfo.FullName, ".");
                }

                zipFile.Save(tmpZipFile);
            }

            byte[] data = File.ReadAllBytes(tmpZipFile);
            File.Delete(tmpZipFile);
            return(data);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Returns either an IVirtualFile instance or a VirtualFile instance.
        /// </summary>
        /// <param name="virtualPath"></param>
        /// <param name="queryString"></param>
        /// <returns></returns>
        public IVirtualFile GetFile(string virtualPath, NameValueCollection queryString)
        {
            IVirtualFile f = null;

            foreach (IVirtualImageProvider p in c.Plugins.VirtualProviderPlugins)
            {
                if (p.FileExists(virtualPath, queryString))
                {
                    f = p.GetFile(virtualPath, queryString); break;
                }
            }
            if (f == null && HostingEnvironment.VirtualPathProvider != null && HostingEnvironment.VirtualPathProvider.FileExists(virtualPath))
            {
                var vf = HostingEnvironment.VirtualPathProvider.GetFile(virtualPath);
                if (vf is IVirtualFile)
                {
                    f = (IVirtualFile)vf;
                }
                else
                {
                    f = new VirtualFileWrapper(vf);
                }
            }
            if (f == null)
            {
                return(null);
            }

            //Now we have a reference to the real virtual file, let's see if it is source-cached.
            try
            {
                IVirtualFile cached = null;
                foreach (IVirtualFileCache p in c.Plugins.GetAll <IVirtualFileCache>())
                {
                    cached = p.GetFileIfCached(virtualPath, queryString, f);
                    if (cached != null)
                    {
                        return(cached);
                    }
                }
            }
            catch (FileNotFoundException)
            {
                //IVirtualFileCache instances will .Open() and read the original IVirtualFile instance.
                //We must abstract the differences in thrown exception as much as possible.  Start with FileNotFound & DirectoryNotFound
                return(null);
            }
            catch (DirectoryNotFoundException)
            { return(null); }
            return(f);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Returns either an IVirtualFile instance or a VirtualFile instance.
        /// </summary>
        /// <param name="virtualPath"></param>
        /// <param name="queryString"></param>
        /// <returns></returns>
        public IVirtualFile GetFile(string virtualPath, NameValueCollection queryString)
        {
            IVirtualFile f = null;

            foreach (IVirtualImageProvider p in c.Plugins.VirtualProviderPlugins)
            {
                if (p.FileExists(virtualPath, queryString))
                {
                    f = p.GetFile(virtualPath, queryString); break;
                }
            }
            if (f == null && HostingEnvironment.VirtualPathProvider != null && HostingEnvironment.VirtualPathProvider.FileExists(virtualPath))
            {
                var vf = HostingEnvironment.VirtualPathProvider.GetFile(virtualPath);
                if (vf is IVirtualFile)
                {
                    f = (IVirtualFile)vf;
                }
                else
                {
                    f = new VirtualFileWrapper(vf);
                }
            }
            if (f == null)
            {
                return(null);
            }

            //Now we have a reference to the real virtual file, let's see if it is source-cached.
            IVirtualFile cached = null;

            foreach (IVirtualFileCache p in c.Plugins.GetAll <IVirtualFileCache>())
            {
                cached = p.GetFileIfCached(virtualPath, queryString, f);
                if (cached != null)
                {
                    return(cached);
                }
            }
            return(f);
        }