/// <summary> /// Unpackages a project /// </summary> /// <returns></returns> //public bool UnpackageProject() //{ // bool success = false; // success = DeryptPackage(); // success = DecompressProject(); // string mdbFilePath = compressedPackagePath.Substring(0, compressedPackagePath.Length - 3) + ".mdb"; // string prjFilePath = compressedPackagePath.Substring(0, compressedPackagePath.Length - 3) + ".prj"; // sourceProject = Util.CreateProjectFileFromDatabase(mdbFilePath, true); // sourceProject = new Project(prjFilePath); // View parentSourceView = sourceProject.Views[destinationView.Name]; // List<View> viewsToProcess = new List<View>(); // foreach (View view in sourceProject.Views) // { // if (view.Name == parentSourceView.Name) // { // continue; // } // if (ImportExportHelper.IsFormDescendant(view, parentSourceView)) // { // viewsToProcess.Add(view); // } // } // FormDataImporter fdi = new FormDataImporter(sourceProject, destinationProject, destinationView, viewsToProcess); // fdi.SetProgressBar += new SetProgressBarDelegate(OnSetProgress); // fdi.SetStatus += new UpdateStatusEventHandler(OnSetStatusMessage); // fdi.AddStatusMessage += new UpdateStatusEventHandler(OnAddStatusMessage); // fdi.SetMaxProgressBarValue += new SetMaxProgressBarValueDelegate(OnSetMaxProgressBarValue); // fdi.Update = this.Update; // fdi.Append = this.Append; // fdi.ImportFormData(); // fdi.Dispose(); // return success; //} /// <summary> /// Unpackages a series of projects /// </summary> /// <returns></returns> public bool UnpackageProjects() { bool success = false; runningCount = 1; foreach (string filePath in PackagePaths) { string compressedPackagePath = DeryptPackage(filePath); success = DecompressProject(compressedPackagePath); string mdbFilePath = compressedPackagePath.Substring(0, compressedPackagePath.Length - 3) + ".mdb"; string prjFilePath = compressedPackagePath.Substring(0, compressedPackagePath.Length - 3) + ".prj"; sourceProject = Util.CreateProjectFileFromDatabase(mdbFilePath, true); sourceProject = new Project(prjFilePath); View parentSourceView = sourceProject.Views[destinationView.Name]; List<View> viewsToProcess = new List<View>(); foreach (View view in sourceProject.Views) { if (view.Name == parentSourceView.Name) { continue; } if (ImportExportHelper.IsFormDescendant(view, parentSourceView)) { viewsToProcess.Add(view); } } FormDataImporter fdi = new FormDataImporter(sourceProject, destinationProject, destinationView, viewsToProcess); fdi.SetProgressBar += new SetProgressBarDelegate(OnSetProgress); fdi.SetStatus += new UpdateStatusEventHandler(OnSetStatusMessage); fdi.AddStatusMessage += new UpdateStatusEventHandler(OnAddStatusMessage); fdi.SetMaxProgressBarValue += new SetMaxProgressBarValueDelegate(OnSetMaxProgressBarValue); fdi.Update = this.Update; fdi.Append = this.Append; fdi.ImportFormData(); fdi.Dispose(); if (FinishUnpackage != null) { FinishUnpackage(); } try { File.Delete(compressedPackagePath); File.Delete(mdbFilePath); } catch (IOException ex) { OnAddStatusMessage("There was a problem deleting the unencrypted (plaintext) data from disk. Exception: " + ex); } runningCount++; } return success; }