Example #1
0
 public RarContainer(MangaInfo item, Action <string> onPropertyChanged, MainViewModel.PageOrder pageOrder, bool extractFirstOnly = false, bool doNotExtract = false) : base(item, onPropertyChanged, pageOrder)
 {
     using var rarExtractor = new SevenZipExtractor(ContainerPath);
     OrderFiles(rarExtractor.ArchiveFileData);
     if (doNotExtract)
     {
         return;
     }
     if (extractFirstOnly)
     {
         ExtractFirst();
     }
     else
     {
         var bg = new BackgroundWorker();
         bg.DoWork               += ExtractAllWork;
         bg.ProgressChanged      += (_, _) => onPropertyChanged?.Invoke(nameof(Extracted));
         bg.WorkerReportsProgress = true;
         bg.RunWorkerAsync();
     }
 }
Example #2
0
 public FolderContainer(MangaInfo item, IEnumerable <FileInfo> files, MainViewModel.PageOrder pageOrder) : base(item, pageOrder)
 {
     CurrentIndex = 0;
     OrderFiles(files);
 }
Example #3
0
 protected Container(MangaInfo item, MainViewModel.PageOrder pageOrder) : base(item, pageOrder)
 {
 }
Example #4
0
 public ZipContainer(MangaInfo item, Action <string> onPropertyChanged, MainViewModel.PageOrder pageOrder) : base(item, onPropertyChanged, pageOrder)
 {
     using var archive = new ZipArchive(File.OpenRead(ContainerPath));
     OrderFiles(archive.Entries);
 }
Example #5
0
 protected ArchiveContainer(MangaInfo item, Action <string> onPropertyChanged, MainViewModel.PageOrder pageOrder) : base(item, pageOrder)
 {
     FileDirectory = Path.Combine(StaticHelpers.TempFolder, ContainerPath.GetHashCode().ToString());
     Directory.CreateDirectory(FileDirectory);
     UpdateExtracted = onPropertyChanged;
 }