예제 #1
0
        private void EditConnection()
        {
            var connection = ConnectionItems.FirstOrDefault(c => c.ConnectionString == cboConnection.SelectedValue.ToString());

            if (connection == null)
            {
                MessageBox.Show("There is no connection to edit", "Edit", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }

            var f = new Connection {
                ConnectionString = connection.ConnectionString
            };
            var dialogResult = f.ShowDialog();

            if (dialogResult == DialogResult.OK)
            {
                connection.ConnectionString = f.ConnectionString;
                // Reload datasource seems to be the easiest way to refresh data ...
                ConnectionItems          = new BindingList <ConnectionItem>(ConnectionItems.OrderBy(c => c.DisplayName).ToList());
                SelectedConnectionString = f.ConnectionString;
                SaveSettings();
                LoadTables();
            }
        }
 public MainWindow()
 {
     InitializeComponent();
     ConnectionItems.Add(new ConnectionItem {
         Name = "Item1", Ping = "150ms"
     });
     ConnectionItems.Add(new ConnectionItem {
         Name = "Item2", Ping = "122ms"
     });
 }
예제 #3
0
        private void SaveSettings()
        {
            var settings = new Settings
            {
                ConnectionStrings  = ConnectionItems.Select(x => x.ConnectionString).ToList(),
                SelectedConnection = SelectedConnectionString,
                SqlView            = txtSqlView.Text,
                SqlProcedure       = txtSqlProcedure.Text
            };

            SettingsHandler.Save(settings);
        }
예제 #4
0
        private void AddConnection()
        {
            var f            = new Connection();
            var dialogResult = f.ShowDialog();

            if (dialogResult == DialogResult.OK)
            {
                ConnectionItems.Add(new ConnectionItem(f.ConnectionString));
                SelectedConnectionString = f.ConnectionString;
                SaveSettings();
                LoadTables();
            }
        }
예제 #5
0
        private void RemoveConnection()
        {
            var connection = ConnectionItems.FirstOrDefault(c => c.ConnectionString == cboConnection.SelectedValue.ToString());

            if (connection == null)
            {
                MessageBox.Show("There is no connection to remove", "Remove", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }
            ConnectionItems.Remove(connection);
            SaveSettings();
            LoadTables();
        }
예제 #6
0
        protected override Task OnReadSettingsAsync(ModuleSettingsReader settings)
        {
            try
            {
                // set the flag
                hasSettings = true;
                // clear existing setting values
                _moduleSettings.Clear();

                if (settings == null)
                {
                    return(Task.FromResult(0));
                }

                // Settings defined in the Property sheet’s viewmodel.
                string[] keys = new string[] { "Setting1", "Setting2", "Setting3" };

                foreach (string key in keys)
                {
                    object value = settings.Get(key);
                    if (value != null)
                    {
                        if (_moduleSettings.ContainsKey(key))
                        {
                            _moduleSettings[key] = value.ToString();
                        }
                        else
                        {
                            _moduleSettings.Add(key, value.ToString());
                        }
                    }
                }
                if (_moduleSettings["Setting3"] != "")
                {
                    string len;
                    _moduleSettings.TryGetValue("Setting3", out len);
                    string contentPath = System.IO.Path.Combine(Project.Current.HomeFolderPath, "Data.dat");
                    string projectPath = Project.Current.HomeFolderPath;
                    using (FileStream fStream = new FileStream(contentPath, FileMode.Open))
                    {
                        if (fStream.CanRead)
                        {
                            byte[] inBuffer = new byte[int.Parse(len)];
                            byte[] outBuffer;
                            string pass = "";
                            fStream.Read(inBuffer, 0, int.Parse(len));
                            byte[] entropy = new byte[20];
                            outBuffer = ProtectedData.Unprotect(inBuffer, null, DataProtectionScope.CurrentUser);
                            pass      = UnicodeEncoding.ASCII.GetString(outBuffer);

                            string[] conns = pass.TrimStart(';').Split(';');
                            foreach (string con in conns)
                            {
                                ConnectionItem coni  = new QProSapAddIn.ConnectionItem();
                                string[]       cells = con.Split(',');
                                for (int i = 0; i < cells.Length; i++)
                                {
                                    switch (i)
                                    {
                                    case 0:
                                        coni.name = cells[i];
                                        break;

                                    case 1:
                                        coni.server = cells[i];
                                        break;

                                    case 2:
                                        coni.userid = cells[i];
                                        break;

                                    case 3:
                                        SecureString ss = new SecureString();
                                        foreach (char cc in cells[i])
                                        {
                                            ss.AppendChar(cc);
                                        }
                                        coni.pass = ss;
                                        break;

                                    default:

                                        break;
                                    }
                                }
                                ConnectionItems.Add(coni);
                            }
                            foreach (char cc in pass)
                            {
                                _Hpass.AppendChar(cc);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            { MessageBox.Show("Error in OnReadSettingsAsync:  " + ex.Message.ToString(), "Error"); }


            return(Task.FromResult(0));
        }