private static readonly int FragNameDelimLength = 4 + FragNameDelim.Length; // frag name always 4 chars public void Export(ErpFile erp, string folderPath, IProgress <string>?progressStatus, IProgress <int>?progressPercentage) { var success = 0; var fail = 0; for (var i = 0; i < erp.Resources.Count;) { var resource = erp.Resources[i]; progressStatus?.Report("Exporting " + Path.Combine(resource.Folder, resource.FileName) + "... "); try { ExportResource(resource, folderPath); progressStatus?.Report("SUCCESS" + Environment.NewLine); ++success; } catch { progressStatus?.Report("FAIL" + Environment.NewLine); ++fail; } ++i; progressPercentage?.Report(i); } progressStatus?.Report(string.Format("{0} Succeeded, {1} Failed", success, fail)); }
static void Export(string file, string folder) { ErpFile erp = new ErpFile(); erp.Read(File.Open(file, FileMode.Open, FileAccess.Read, FileShare.Read)); erp.ProgressStatus = new Progress <string>(status => { _stringBuilder.Append(status); }); Task.Run(() => erp.Export(folder)).Wait(); }
private void ClearVars() { if (file == null) { return; } resourcesWorkspace.ClearData(); texturesWorkspace.ClearData(); DisplayName = Properties.Resources.AppTitleLong; file = null; }
static void Import(string file, string folder) { ErpFile erp = new ErpFile(); erp.Read(File.Open(file, FileMode.Open, FileAccess.Read, FileShare.Read)); erp.ProgressStatus = new Progress <string>(status => { _stringBuilder.Append(status); }); Task.Run(() => erp.Import(Directory.GetFiles(folder, "*", SearchOption.AllDirectories))).Wait(); Task.Run(() => erp.Write(File.Open(file, FileMode.Create, FileAccess.Write, FileShare.Read))).Wait(); }
static void Export(string file, string folder) { ErpFile erp = new ErpFile(); using (var fs = File.Open(file, FileMode.Open, FileAccess.Read, FileShare.Read)) erp.Read(fs); var statuProgress = new Progress <string>(status => { _stringBuilder.Append(status); }); var resourceExporter = new ErpResourceExporter(); resourceExporter.Export(erp, folder, statuProgress, null); }
static void Import(string file, string folder) { ErpFile erp = new ErpFile(); using (var fs = File.Open(file, FileMode.Open, FileAccess.Read, FileShare.Read)) erp.Read(fs); var progressStatus = new Progress <string>(status => { _stringBuilder.Append(status); }); var resourceExporter = new ErpResourceExporter(); resourceExporter.Import(erp, Directory.GetFiles(folder, "*", SearchOption.AllDirectories), progressStatus, null); using (var fs = File.Open(file, FileMode.Create, FileAccess.Write, FileShare.Read)) erp.Write(fs); }
private void Open(string fileName) { try { filePath = fileName; ClearVars(); this.file = new ErpFile(); Task.Run(() => this.file.Read(File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.Read))).Wait(); resourcesWorkspace.LoadData(file); packagesWorkspace.LoadData(resourcesWorkspace); texturesWorkspace.LoadData(resourcesWorkspace); xmlFilesWorkspace.LoadData(resourcesWorkspace); SelectTab(Properties.Settings.Default.StartingTab); DisplayName = Properties.Resources.AppTitleShort + " - " + Path.GetFileName(filePath); } catch (Exception excp) { // Fail DisplayName = Properties.Resources.AppTitleLong; MessageBox.Show("The program could not open this file!" + Environment.NewLine + Environment.NewLine + excp.Message, Properties.Resources.AppTitleLong, MessageBoxButton.OK, MessageBoxImage.Error); } }
public void Import(ErpFile erp, string[] files, IProgress <string>?progressStatus, IProgress <int>?progressPercentage) { var success = 0; var fail = 0; var skip = 0; for (var i = 0; i < erp.Resources.Count;) { var resource = erp.Resources[i]; progressStatus?.Report("Importing " + Path.Combine(resource.Folder, resource.FileName) + "... "); try { if (ImportResource(resource, files)) { progressStatus?.Report("SUCCESS" + Environment.NewLine); ++success; } else { progressStatus?.Report("SKIP" + Environment.NewLine); ++skip; } } catch { progressStatus?.Report("FAIL" + Environment.NewLine); ++fail; } ++i; progressPercentage?.Report(i); } progressStatus?.Report(string.Format("{0} Succeeded, {1} Skipped, {2} Failed", success, skip, fail)); }