/// <summary> /// this method will install the given script to the script folder /// and copy the dll neede by the sript to the needed folder /// </summary> /// <param name="script_Archfilename">the full path of the script </param> /// <param name="installfolder_scriptanddll">the path that /// script and dll wll be installed</param> public void Install(string script_Archfilename, string installfolder_scriptanddll) { try { ScriptInfo scrinf = null; ScrablerCore core = new ScrablerCore(); DataSet set = new DataSet(); hydrobaseADO ad = new hydrobaseADO(); string tscrfilename = null, str; string[] files; if ((script_Archfilename != null) && (installfolder_scriptanddll != null) && (File.Exists(script_Archfilename) == true) && (Directory.Exists(installfolder_scriptanddll) == true)) { if (Directory.Exists(installfolder_scriptanddll + "\\" + ScrablerCore.ScriptsFolderDLL) != true) { Directory.CreateDirectory(installfolder_scriptanddll + "\\" + ScrablerCore.ScriptsFolderDLL); } FastZip ziphandler = new FastZip(); FileInfo fileinf = new FileInfo(script_Archfilename); ziphandler.ExtractZip(script_Archfilename, SDKBase.UsersTempDirectory + "\\" + fileinf.Name, "scrf"); files = Directory.GetFiles(SDKBase.UsersTempDirectory + "\\" + fileinf.Name); ad.AttachDataBaseinDataSet(set, files[0]); // MessageBox.Show(files[0]); scrinf = core.GetScriptInfo(set); core.SetReferences(set, installfolder_scriptanddll + "\\" + ScrablerCore.ScriptsFolderDLL + "\\" + scrinf.Title, files[0]); File.Copy(files[0], installfolder_scriptanddll + "\\" + ScrablerCore.ScriptsFolder + "\\" + files[0].Substring(files[0].LastIndexOf("\\") + 1)); str = files[0]; tscrfilename = files[0]; File.Delete(files[0]); ziphandler.ExtractZip(script_Archfilename, SDKBase.UsersTempDirectory + "\\" + fileinf.Name, "dll"); files = null; files = Directory.GetFiles(SDKBase.UsersTempDirectory + "\\" + fileinf.Name); foreach (string file in files) { FileInfo dllinf = new FileInfo(file); this.CopyDll(file, installfolder_scriptanddll + "\\" + ScrablerCore.ScriptsFolderDLL + "\\" + scrinf.Title + "\\" + dllinf.Name); //MessageBox.Show("hi6"); } core.SetReferences(set, installfolder_scriptanddll + "\\" + ScrablerCore.ScriptsFolderDLL + "\\" + scrinf.Title, tscrfilename); } FileInfo fileinf2 = new FileInfo(script_Archfilename); string [] tfile = Directory.GetFiles(SDKBase.UsersTempDirectory + "\\" + fileinf2.Name); foreach (string file in tfile) { File.Delete(file); } Directory.Delete(SDKBase.UsersTempDirectory + "\\" + fileinf2.Name); } catch (Exception e) { Program.Bugtracking(e); } }
private void btnLoad_Click(object sender, EventArgs ev) { try { hydrobaseADO ado = new hydrobaseADO(); string zipfile; string destdir; if ((MainWindow.username != null) && (MainWindow.pass != null)) { frmEdit frmedit = new frmEdit(); ado.CloseDataBase(frmedit.set); ado.RemoveTableFromDataGrid(frmedit.grid); //frmedit.IsMdiChild = true; frmedit.MdiParent = Program.Mainwnd; frmedit.Show(); frmedit.set = new DataSet(); // frmMain.grid = new DataGridView(); // MessageBox.Show(Program.client.LoadTable(BaseClass.recordtag, MainWindow.username, MainWindow.pass, lstDbs.Text, lsttables.Text)); if (Program.client.IsTableEncrypted(MainWindow.username, MainWindow.pass, lstDbs.Text, lsttables.Text) == false) { RemoteFileInfo zfile = Program.client.LoadTableAsFile(BaseClass.recordtag, MainWindow.username, MainWindow.pass, lstDbs.Text, lsttables.Text); if (zfile != null) { zipfile = Path.Combine(Program.TempPath, zfile.FileName); byte[] str = zfile.FileByteStream; util.ByteToFile(zipfile, str); FastZip z = new FastZip(); destdir = Path.Combine(Program.TempPath, Path.GetFileNameWithoutExtension(zfile.FileName)); if (!Directory.Exists(destdir)) { Directory.CreateDirectory(destdir); } z.ExtractZip(zipfile, destdir, null); string[] files = Directory.GetFiles(destdir); if (files != null) { frmedit.set.ReadXml(files[0]); } } // frmedit.set.ReadXml(util.StringToStream()); //frmedit.set.ReadXml(util.StringToStream(Program.client.LoadTable(BaseClass.recordtag, MainWindow.username, MainWindow.pass, lstDbs.Text, lsttables.Text))); // MessageBox.Show(Program.client.LoadTable(BaseClass.recordtag, MainWindow.username, MainWindow.pass, lstDbs.Text, lsttables.Text)); } else { if (MainWindow.passphrase != null) { frmedit.set.ReadXml(util.StringToStream(Program.client.Decrypt(BaseClass.tabletag, BaseClass.recordtag, MainWindow.username, lstDbs.Text, lsttables.Text, MainWindow.pass, Cryptography.CryptograhyAlgorithm.rijdael.ToString().ToString(), Cryptography.HashingAlogrithm.SHA384.ToString().ToString(), MainWindow.passphrase))); } else { MainWindow.passphrase = Microsoft.VisualBasic.Interaction.InputBox("Type your passphrase"); if (MainWindow.passphrase != null) { frmedit.set.ReadXml(util.StringToStream(Program.client.Decrypt(BaseClass.tabletag, BaseClass.recordtag, MainWindow.username, lstDbs.Text, lsttables.Text, MainWindow.pass, Cryptography.CryptograhyAlgorithm.rijdael.ToString().ToString(), Cryptography.HashingAlogrithm.SHA384.ToString().ToString(), MainWindow.passphrase))); } } } // MessageBox.Show(Program.client.LoadTable(BaseClass.recordtag,MainWindow.username, MainWindow.pass, lstDbs.Text, lsttables.Text)); if (frmedit.set.Tables.Count > 0) { frmedit.grid.DataSource = frmedit.set; frmedit.grid.DataMember = frmedit.set.Tables[frmedit.set.Tables.Count - 1].TableName; ado.ConnectEventstoDataGrid(frmedit.grid); ado.ConnectEventstoDataTable(frmedit.set.Tables[0]); frmedit.Text = frmedit.grid.DataMember; frmedit.dbname = lstDbs.Text; frmedit.tablename = lsttables.Text; frmedit.Text = String.Format("{0}\\{1}", frmedit.dbname, frmedit.tablename); } } else { Login log = new Login(); log.Show(); frmEdit frmedit = new frmEdit(); frmedit.MdiParent = Program.Mainwnd; // frmedit.IsMdiChild = true; frmedit.set = new DataSet(); frmedit.set.ReadXml(util.StringToStream(Program.client.LoadTable(BaseClass.recordtag, MainWindow.username, MainWindow.pass, lstDbs.Text, lsttables.Text))); frmedit.grid.DataSource = frmedit.set; frmedit.grid.DataMember = frmedit.set.Tables[frmedit.set.Tables.Count - 1].TableName; frmedit.Text = frmedit.grid.DataMember; frmedit.dbname = lstDbs.Text; frmedit.tablename = lsttables.Text; frmedit.Text = String.Format("{0}\\{1}", frmedit.dbname, frmedit.tablename); ado.ConnectEventstoDataGrid(frmedit.grid); ado.ConnectEventstoDataTable(frmedit.set.Tables[0]); } this.Close(); } catch (Exception e) { Program.errorreport(e); MessageBox.Show(e.ToString()); this.Close(); } }