private void StartProcess1(object o) { try { ProcessorArgs processorArgs = (ProcessorArgs)o; ConfigurationMain mainCfg = processorArgs.ConfigurationMain; // if (mainCfg.IsShowResults) { Logger.Log("Preparing futur results data"); var infoTextures = new DirectoryInfo(mainCfg.PathSource); // foreach (var directoryInfo in infoTextures.GetDirectories()) { processorArgs.Folders.Add(directoryInfo.Name, new InformationDirectory { Size = FileUtils.CalculateDirectorySizeMo(directoryInfo, mainCfg.PassBsa.Enabled) }); } processorArgs.Folders.Add(infoTextures.Name, new InformationDirectory { Size = FileUtils.CalculateDirectorySizeMo(infoTextures, mainCfg.PassBsa.Enabled) }); } // if (mainCfg.PassBsa.Enabled) { FileInformation.GetFileInfos(mainCfg.PathSource, mainCfg.PathBackup, processorArgs.FilesBsa, true, mainCfg); FilePreparation.PrepareTreat(processorArgs.FilesBsa, mainCfg, processorArgs.BsaOrders, null, null, true); FileExecution.ExecuteTreat(processorArgs.BsaOrders, mainCfg, true); if (mainCfg.PassBsa.MustUnpack()) { FileExecution.UnpackBsa(processorArgs.BsaOrders, mainCfg); } if (mainCfg.PassBsa.IsCopyAsLoose) { if (mainCfg.PassBsa.IsCopyAsLooseIfDummy) { List <InformationOrder> confirmedBsaUnpack = new List <InformationOrder>(); List <InformationCopy> confirmedDeletes = new List <InformationCopy>(); foreach (InformationOrder bsaOrder in processorArgs.BsaOrders) { var bsaName = Path.GetFileNameWithoutExtension(bsaOrder.FileSource.FullName); var espName = bsaName.ToUpper().Replace(" - TEXTURES", "").Replace("- TEXTURES", ""); var espFile = Path.Combine(bsaOrder.FileSource.Directory.FullName, string.Format("{0}.esp", espName)); FileInfo dummy = new FileInfo("dummy.esp"); if (!dummy.Exists) { throw new Exception("No dummy esp to compare from. A dummy.esp file must be present in Octagon directory."); } FileInfo esp = new FileInfo(espFile); if (esp.Exists && dummy.Length == esp.Length) { confirmedBsaUnpack.Add(bsaOrder); if (!confirmedDeletes.Any(e => string.Equals(e.Target, espFile, StringComparison.OrdinalIgnoreCase))) { confirmedDeletes.Add(new InformationCopy(null, espFile, false, false)); } } } FileExecution.CopyBsaAsLooseSimplified(confirmedBsaUnpack, mainCfg); foreach (InformationCopy confirmedDelete in confirmedDeletes) { FileUtils.ExecuteCopyOrDelete(confirmedDelete); } } else { FileExecution.CopyBsaAsLooseSimplified(processorArgs.BsaOrders, mainCfg); } } } // if (mainCfg.HasTextureOperation() || (mainCfg.IsBackupActivated && mainCfg.IsRecopyOriginal)) { FileInformation.GetFileInfos(mainCfg.PathSource, mainCfg.PathBackup, processorArgs.FilesDds, false, mainCfg); } OnProcessorEnded(2); } catch (AggregateException e) { Logger.Log(e); foreach (Exception innerException in e.InnerExceptions) { Logger.Log(innerException); } OnProcessorEnded(-1); } catch (Exception e) { Logger.Log(e); OnProcessorEnded(-1); } }