Пример #1
0
        private void ExportAll_Execute(object parameter)
        {
            try
            {
                var success      = 0;
                var fail         = 0;
                var progDialogVM = new ProgressDialogViewModel()
                {
                    PercentageMax = packages.Count
                };
                var progDialog = new View.ProgressDialog
                {
                    DataContext = progDialogVM
                };

                var task = Task.Run(() =>
                {
                    var outputFolder = mainView.FilePath.Replace(".", "_") + "_pkgfiles";
                    Directory.CreateDirectory(outputFolder);

                    for (var i = 0; i < packages.Count;)
                    {
                        var resource   = packages[i].Resource;
                        var fragment   = packages[i].Fragment;
                        var folderPath = Path.Combine(outputFolder, resource.Folder);
                        var fileName   = ErpResourceExporter.GetFragmentFileName(resource, fragment);
                        var filePath   = Path.Combine(folderPath, fileName) + ".json";
                        progDialogVM.ProgressStatus.Report("Exporting " + fileName + "... ");

                        try
                        {
                            Directory.CreateDirectory(folderPath);

                            using var fs = File.Open(filePath, FileMode.Create, FileAccess.Write, FileShare.Read);
                            using var sw = new StreamWriter(fs);
                            packages[i].ExportPkg(sw);

                            progDialogVM.ProgressStatus.Report("SUCCESS" + Environment.NewLine);
                            ++success;
                        }
                        catch when(!System.Diagnostics.Debugger.IsAttached)
                        {
                            progDialogVM.ProgressStatus.Report("FAIL" + Environment.NewLine);
                            ++fail;
                        }

                        progDialogVM.ProgressPercentage.Report(++i);
                    }

                    progDialogVM.ProgressStatus.Report(string.Format("{0} Succeeded, {1} Failed", success, fail));
                });

                progDialog.ShowDialog();
                task.Wait();
            }
            catch
            {
                MessageBox.Show("There was an error, could not export all pkg files!", Properties.Resources.AppTitleLong, MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
        public ResourcesWorkspaceViewModel(MainViewModel mainView)
            : base(mainView)
        {
            resourceExporter = new ErpResourceExporter();
            resources        = new ObservableCollection <ErpResourceViewModel>();
            _displayName     = "All Resources";

            Export    = new RelayCommand(Export_Execute, Export_CanExecute);
            Import    = new RelayCommand(Import_Execute, Import_CanExecute);
            ExportAll = new RelayCommand(ExportAll_Execute, ExportAll_CanExecute);
            ImportAll = new RelayCommand(ImportAll_Execute, ImportAll_CanExecute);
        }
Пример #3
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);
        }
Пример #4
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);
        }
Пример #5
0
        private void ImportAll_Execute(object parameter)
        {
            try
            {
                var directory = mainView.FilePath.Replace(".", "_") + "_pkgfiles";
                if (Directory.Exists(directory) == true)
                {
                    var success = 0;
                    var fail    = 0;
                    var skip    = 0;
                    var found   = false;

                    var progDialogVM = new ProgressDialogViewModel
                    {
                        PercentageMax = packages.Count
                    };
                    var progDialog = new View.ProgressDialog
                    {
                        DataContext = progDialogVM
                    };

                    var task = Task.Run(() =>
                    {
                        for (var i = 0; i < packages.Count;)
                        {
                            var resource    = packages[i].Resource;
                            var fragment    = packages[i].Fragment;
                            var folderPath  = Path.Combine(directory, resource.Folder);
                            var fileName    = ErpResourceExporter.GetFragmentFileName(resource, fragment);
                            var expFilePath = Path.Combine(folderPath, fileName) + ".json";
                            progDialogVM.ProgressStatus.Report("Importing " + fileName + "... ");

                            try
                            {
                                foreach (var filePath in Directory.GetFiles(directory, "*.json", SearchOption.AllDirectories))
                                {
                                    if (Path.Equals(filePath, expFilePath))
                                    {
                                        using var fs = File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);
                                        packages[i].ImportPkg(fs);

                                        if (packages[i].IsSelected)
                                        {
                                            packages[i].IsSelected = false;
                                            packages[i].IsSelected = true;
                                        }
                                        found = true;
                                        break;
                                    }
                                }

                                if (found)
                                {
                                    progDialogVM.ProgressStatus.Report("SUCCESS" + Environment.NewLine);
                                    ++success;
                                }
                                else
                                {
                                    progDialogVM.ProgressStatus.Report("SKIP" + Environment.NewLine);
                                    ++skip;
                                }
                            }
                            catch
                            {
                                progDialogVM.ProgressStatus.Report("FAIL" + Environment.NewLine);
                                ++fail;
                            }

                            progDialogVM.ProgressPercentage.Report(++i);
                        }

                        progDialogVM.ProgressStatus.Report(string.Format("{0} Succeeded, {1} Skipped, {2} Failed", success, skip, fail));
                    });

                    progDialog.ShowDialog();
                    task.Wait();
                }
                else
                {
                    MessageBox.Show("Could not find pkgfiles folder!", Properties.Resources.AppTitleLong, MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
            catch
            {
                MessageBox.Show("There was an error, could not import all pkg files!", Properties.Resources.AppTitleLong, MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }