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));
        }
Beispiel #2
0
        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();
        }
Beispiel #3
0
        private void ClearVars()
        {
            if (file == null)
            {
                return;
            }

            resourcesWorkspace.ClearData();
            texturesWorkspace.ClearData();

            DisplayName = Properties.Resources.AppTitleLong;
            file        = null;
        }
Beispiel #4
0
        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();
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
 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));
        }