Exemple #1
0
        public override WidgetBase UnPackWidget(ZipFileInfoCollection pack)
        {
            SectionWidget widget = null;

            foreach (ZipFileInfo item in pack)
            {
                if (item.RelativePath.EndsWith("-widget.json"))
                {
                    widget = JsonConvert.DeserializeObject <SectionWidget>(Encoding.UTF8.GetString(item.FileBytes), new SectionContentJsonConverter());
                    continue;
                }

                using (var fs = File.Create((ApplicationContext as CMSApplicationContext).MapPath("~" + item.RelativePath)))
                {
                    fs.Write(item.FileBytes, 0, item.FileBytes.Length);
                }

                if (item.RelativePath.EndsWith(".json"))
                {
                    var template = JsonConvert.DeserializeObject <SectionTemplate>(Encoding.UTF8.GetString(item.FileBytes));
                    var sectionTemplateService =
                        ServiceLocator.Current.GetInstance <ISectionTemplateService>();
                    if (sectionTemplateService.Count(m => m.TemplateName == template.TemplateName) > 0)
                    {
                        sectionTemplateService.Update(template);
                    }
                    else
                    {
                        sectionTemplateService.Add(template);
                    }
                }
            }
            return(widget);
        }
Exemple #2
0
 private void CollectDirectory(string root, DirectoryInfo directory, ZipFileInfoCollection zipFiles)
 {
     foreach (FileInfo file in directory.GetFiles())
     {
         CollectFile(file.DirectoryName.Replace(root, "") + "\\", file, zipFiles);
     }
     foreach (DirectoryInfo dir in directory.GetDirectories())
     {
         CollectDirectory(root, dir, zipFiles);
     }
 }
 public void Compress(string path)
 {
     ZipFileInfoCollection zipFiles = new ZipFileInfoCollection(_token);
     foreach (var dir in _directories)
     {
         string root = dir.Parent == null ? dir.FullName : dir.Parent.FullName;
         CollectDirectory(root, dir, zipFiles);
     }
     foreach (FileInfo fileItem in _singleFiles)
     {
         CollectFile(null, fileItem, zipFiles);
     }
     using (GZipStream stream = new GZipStream(File.Create(path), CompressionMode.Compress))
     {
         BinaryFormatter binaryFormatter = new BinaryFormatter();
         binaryFormatter.Serialize(stream, zipFiles);
     }
 }
Exemple #4
0
        public void Compress(string path)
        {
            ZipFileInfoCollection zipFiles = new ZipFileInfoCollection();

            foreach (var dir in _directories)
            {
                string root = dir.Parent == null ? dir.FullName : dir.Parent.FullName;
                CollectDirectory(root, dir, zipFiles);
            }

            foreach (var fileItem in _singleFiles)
            {
                CollectFile(fileItem.Key, fileItem.Value, zipFiles);
            }
            using (GZipStream stream = new GZipStream(File.Create(path), CompressionMode.Compress))
            {
                //BinaryFormatter binaryFormatter = new BinaryFormatter();
                //binaryFormatter.Serialize(stream, zipFiles);
            }
        }
Exemple #5
0
        public MemoryStream ToMemoryStream()
        {
            ZipFileInfoCollection zipFiles = new ZipFileInfoCollection();

            foreach (var dir in _directories)
            {
                string root = dir.Parent == null ? dir.FullName : dir.Parent.FullName;
                CollectDirectory(root, dir, zipFiles);
            }
            foreach (var fileItem in _singleFiles)
            {
                CollectFile(fileItem.Key, fileItem.Value, zipFiles);
            }

            MemoryStream ms = new MemoryStream();

            //BinaryFormatter binaryFormatter = new BinaryFormatter();
            //binaryFormatter.Serialize(ms, zipFiles);
            //ms.Position = 0;
            return(ms);
        }
Exemple #6
0
 private void CollectFile(string root, FileInfo file, ZipFileInfoCollection zipFiles)
 {
     using (FileStream originalFileStream = file.OpenRead())
     {
         if ((File.GetAttributes(file.FullName) &
              FileAttributes.Hidden) != FileAttributes.Hidden & file.Extension != ".gz")
         {
             using (MemoryStream ms = new MemoryStream())
             {
                 byte[] buffer = new byte[10240];
                 int    count  = 0;
                 while ((count = originalFileStream.Read(buffer, 0, buffer.Length)) > 0)
                 {
                     ms.Write(buffer, 0, count);
                 }
                 zipFiles.Add(new ZipFileInfo
                 {
                     FileBytes    = ms.ToArray(),
                     RelativePath = root + file.Name
                 });
             }
         }
     }
 }
        public MemoryStream ToMemoryStream()
        {
            ZipFileInfoCollection zipFiles = new ZipFileInfoCollection(_token);
            foreach (var dir in _directories)
            {
                string root = dir.Parent == null ? dir.FullName : dir.Parent.FullName;
                CollectDirectory(root, dir, zipFiles);
            }
            foreach (FileInfo fileItem in _singleFiles)
            {
                CollectFile(null, fileItem, zipFiles);
            }

            MemoryStream ms = new MemoryStream();
            BinaryFormatter binaryFormatter = new BinaryFormatter();
            binaryFormatter.Serialize(ms, zipFiles);
            ms.Position = 0;
            return ms;
        }
 private void CollectFile(string root, FileInfo file, ZipFileInfoCollection zipFiles)
 {
     using (FileStream originalFileStream = file.OpenRead())
     {
         if ((File.GetAttributes(file.FullName) &
            FileAttributes.Hidden) != FileAttributes.Hidden & file.Extension != ".gz")
         {
             using (MemoryStream ms = new MemoryStream())
             {
                 byte[] buffer = new byte[10240];
                 int count = 0;
                 while ((count = originalFileStream.Read(buffer, 0, buffer.Length)) > 0)
                 {
                     ms.Write(buffer, 0, count);
                 }
                 zipFiles.Add(new ZipFileInfo
                 {
                     FileBytes = ms.ToArray(),
                     RelativePath = string.IsNullOrEmpty(root) ? "\\" + file.Name : file.DirectoryName.Replace(root, "") + "\\" + file.Name
                 });
             }
         }
     }
 }
 private void CollectDirectory(string root, DirectoryInfo directory, ZipFileInfoCollection zipFiles)
 {
     foreach (FileInfo file in directory.GetFiles())
     {
         CollectFile(root, file, zipFiles);
     }
     foreach (DirectoryInfo dir in directory.GetDirectories())
     {
         CollectDirectory(root, dir, zipFiles);
     }
 }