Beispiel #1
0
        private void onCompletedHandler(DumpResultSet status)
        {
            if (status != null)
            {
                lStatus.Invoke((MethodInvoker) delegate() {
                    lStatus.Text = "Completed";
                });

                pbDumpExec.Invoke((MethodInvoker) delegate() {
                    pbDumpExec.Value = pbDumpExec.Maximum;
                });

                if (status.wasSuccessful)
                {
                    string prefix = null;
                    if (cIncrementalFormat.Checked)
                    {
                        this.Invoke((MethodInvoker) delegate()
                        {
                            List <int> locations = new List <int>();
                            foreach (ListViewItem item in lbSaveLocations.Items)
                            {
                                Object loc = item.Tag;
                                locations.Add(Convert.ToInt32(((firedumpdbDataSet.backup_locationsRow)loc).id));
                            }
                            BinlogDumpCredentialsConfig config = new BinlogDumpCredentialsConfig();
                            config.host     = (string)serverData.Rows[cmbServers.SelectedIndex]["host"];
                            config.port     = unchecked ((int)(long)serverData.Rows[cmbServers.SelectedIndex]["port"]);
                            config.username = (string)serverData.Rows[cmbServers.SelectedIndex]["username"];
                            config.password = (string)serverData.Rows[cmbServers.SelectedIndex]["password"];

                            List <string> databases      = new List <string>();
                            List <string> excludedTables = new List <string>();
                            tableList = new List <string>();
                            foreach (TreeNode node in tvDatabases.Nodes)
                            {
                                if (node.Checked)
                                {
                                    databases.Add(node.Text);
                                    string tables = "";
                                    foreach (TreeNode childNode in node.Nodes)
                                    {
                                        if (!childNode.Checked)
                                        {
                                            tables += childNode.Text + ",";
                                        }
                                        else
                                        {
                                            tableList.Add(childNode.Text);
                                        }
                                    }
                                    if (tables != "")
                                    {
                                        tables = tables.Substring(0, tables.Length - 1); //vgazei to teleutaio comma
                                    }
                                    excludedTables.Add(tables);
                                }
                            }
                            config.database         = databases[0];
                            config.locationIds      = locations.ToArray();
                            IncrementalUtils iutils = new IncrementalUtils(config);
                            prefix = iutils.calculatePrefix(0)[1];
                        });
                    }

                    saveToLocations(status.fileAbsPath, prefix);
                }
                else
                {
                    this.UseWaitCursor = false;
                    string errorMessage = "";
                    switch (status.errorNumber)
                    {
                    case -1:
                        errorMessage = "Connection credentials not set correctly:\n" + status.errorMessage;
                        Console.WriteLine(errorMessage);
                        break;

                    case -2:
                        errorMessage = "MySQL dump failed:\n" + status.mysqldumpexeStandardError;
                        Console.WriteLine(errorMessage);
                        break;

                    case -3:
                        errorMessage = "Compression failed:\n" + status.mysqldumpexeStandardError;
                        Console.WriteLine(errorMessage);
                        break;

                    default:
                        break;
                    }
                    MessageBox.Show(errorMessage, "Dump failed", MessageBoxButtons.OK, MessageBoxIcon.Error);

                    bStartDump.Invoke((MethodInvoker) delegate()
                    {
                        bStartDump.Enabled = true;
                    });
                }

                //kiala pramata na kanei edo, afta pou meleges
                //
                //gia ui components xriazete Invoke
            }
            else
            {
                this.UseWaitCursor = false;
            }
        }
Beispiel #2
0
        private void bStartImport_Click(object sender, EventArgs e)
        {
            if (!performChecks())
            {
                return;
            }
            string path = tb.Text;

            //incremental chain
            if (cImportChain.Checked && pathsToImport == null)
            {
                IncrementalUtils iutils = new IncrementalUtils();
                int isLocalInt          = -1;
                if (!isLocal)
                {
                    try
                    {
                        isLocalInt = (int)(long)location["id"];
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message, "Chain Import", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        Console.WriteLine(ex.StackTrace);
                        return;
                    }
                }
                pathsToImport = iutils.calculateChain(tb.Text, isLocalInt);
                if (pathsToImport[0].StartsWith("Error"))
                {
                    MessageBox.Show(pathsToImport[1], "Chain Import", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                path = pathsToImport[0];
                foreach (string ptoimp in pathsToImport)
                {
                    Console.WriteLine("path to import: " + ptoimp);
                }
            }
            else if (cImportChain.Checked && pathsToImport != null)
            {
                if (pathsToImport.Count() == 0)
                {
                    return;
                }
                path = pathsToImport[0];
            }

            Console.WriteLine("Importing path: " + path);

            this.UseWaitCursor   = true;
            bStartImport.Enabled = false;

            DataRow serverdata             = firedumpdbDataSet.mysql_servers.Rows[cmbServers.SelectedIndex];
            ImportCredentialsConfig config = new ImportCredentialsConfig();

            config.database = (string)serverdata["database"];
            if (cmbDatabases.SelectedIndex != 0)
            {
                config.database = (string)cmbDatabases.SelectedValue;
            }
            config.host            = (string)serverdata["host"];
            config.password        = (string)serverdata["password"];
            config.port            = Convert.ToInt32((Int64)serverdata["port"]);
            config.username        = (string)serverdata["username"];
            config.scriptDelimeter = tbDelimeter.Text;

            adapter = new ImportAdapterManager(path, isLocal, isCompressed, isEncrypted, tbConfirmPass.Text, location, config);
            adapter.ImportComplete    += onImportCompleteHandler;
            adapter.ImportInit        += onImportInitHandler;
            adapter.ImportError       += onImportErrorHandler;
            adapter.ImportProgress    += onImportProgressHandler;
            adapter.InnerProccessInit += onInnerProccessInitHandler;

            adapter.startImport();
        }