private void ImportAll_Execute(object parameter)
        {
            var dlg = new CommonOpenFileDialog
            {
                Title          = "Select a folder to import the resources from:",
                IsFolderPicker = true,

                AddToMostRecentlyUsedList = false,
                AllowNonFileSystemItems   = false,
                EnsureFileExists          = true,
                EnsurePathExists          = true,
                EnsureReadOnly            = false,
                EnsureValidNames          = true,
                Multiselect    = false,
                ShowPlacesList = true
            };

            if (dlg.ShowDialog() == CommonFileDialogResult.Ok)
            {
                try
                {
                    var progDialogVM = new ProgressDialogViewModel()
                    {
                        PercentageMax = mainView.ErpFile.Resources.Count
                    };
                    var progDialog = new View.ProgressDialog
                    {
                        DataContext = progDialogVM
                    };

                    var files = Directory.GetFiles(dlg.FileName, "*", SearchOption.AllDirectories);
                    var task  = Task.Run(() => resourceExporter.Import(mainView.ErpFile, files, progDialogVM.ProgressStatus, progDialogVM.ProgressPercentage));
                    progDialog.ShowDialog();
                    task.Wait();

                    foreach (var child in resources)
                    {
                        child.UpdateSize();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Failed Importing!" + Environment.NewLine + Environment.NewLine +
                                    ex.Message, Properties.Resources.AppTitleLong, MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
        }
Пример #2
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);
        }