christian@0: /* christian@0: * Postarc christian@0: * christian@0: * Author: christian@0: * Christian Lins christian@0: * christian@0: * Copyright: christian@0: * Copyright (C) 2012 Intevation GmbH christian@0: * christian@0: * This program is free software: you can redistribute it and/or modify christian@0: * it under the terms of the GNU Lesser General Public License as published by christian@0: * the Free Software Foundation, either version 3 of the License, or christian@0: * (at your option) any later version. christian@0: * christian@0: * This program is distributed in the hope that it will be useful, christian@0: * but WITHOUT ANY WARRANTY; without even the implied warranty of christian@0: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the christian@0: * GNU General Public License for more details. christian@0: * christian@0: * You should have received a copy of the GNU Lesser General Public License christian@0: * along with this program. If not, see . christian@0: */ christian@0: christian@0: using System; christian@0: using System.Collections.Generic; christian@0: using System.ComponentModel; christian@0: using System.Data; christian@0: using System.Drawing; christian@0: using System.IO; christian@0: using System.Linq; christian@0: using System.Runtime.Serialization.Formatters.Binary; christian@0: using System.Text; christian@0: using System.Windows.Forms; christian@0: using Npgsql; christian@0: christian@0: namespace Postarc.GUI christian@0: { christian@0: public partial class FormConnectionProperties : Form christian@0: { christian@0: private PostGISConnection conn; christian@0: christian@0: public FormConnectionProperties(PostGISConnection conn) christian@0: { christian@0: InitializeComponent(); christian@0: this.conn = conn; christian@0: christian@0: this.txtConnectionName.Text = conn.Name; christian@0: this.txtHost.Text = conn.Host; christian@0: this.txtUser.Text = conn.User; christian@0: this.txtPassword.Text = conn.Password; christian@0: this.cmbDbNames.SelectedItem = conn.Database; christian@0: this.numPort.Value = conn.Port; christian@0: } christian@0: christian@0: private void groupBoxAuthentication_Enter(object sender, EventArgs e) christian@0: { christian@0: christian@0: } christian@0: christian@0: private void btnSave_Click(object sender, EventArgs e) christian@0: { christian@0: UpdateConnectionObject(); christian@0: christian@0: // Write to application data christian@0: Directory.CreateDirectory(Application.UserAppDataPath + "\\postarc\\"); christian@0: FileStream fs = new FileStream( christian@0: Application.UserAppDataPath + "\\postarc\\" + txtConnectionName.Text + ".connprof", christian@0: FileMode.OpenOrCreate); christian@0: BinaryFormatter formatter = new BinaryFormatter(); christian@0: formatter.Serialize(fs, this.conn); christian@0: fs.Close(); christian@0: christian@0: MessageBox.Show( christian@0: "Connection profile saved!", "Save success", christian@0: MessageBoxButtons.OK, MessageBoxIcon.Information); christian@0: } christian@0: christian@0: private void btnTestConnection_Click(object sender, EventArgs e) christian@0: { christian@0: UpdateConnectionObject(); christian@0: try christian@0: { christian@0: NpgsqlConnection conn = this.conn.Open(); christian@0: conn.Close(); christian@0: } christian@0: catch (Exception ex) christian@0: { christian@0: MessageBox.Show(ex.Message); christian@0: return; christian@0: } christian@0: christian@0: MessageBox.Show("Connection succeeded."); christian@0: } christian@0: christian@0: private void UpdateConnectionObject() christian@0: { christian@0: this.conn.Database = this.cmbDbNames.SelectedValue != null ? this.cmbDbNames.SelectedValue.ToString() : ""; christian@0: this.conn.Host = this.txtHost.Text; christian@0: this.conn.Name = this.txtConnectionName.Text; christian@0: this.conn.Password = this.txtPassword.Text; christian@0: this.conn.Port = Convert.ToInt16(this.numPort.Value); christian@0: this.conn.User = this.txtUser.Text; christian@0: } christian@0: christian@0: private void btnCancel_Click(object sender, EventArgs e) christian@0: { christian@0: Close(); christian@0: } christian@0: } christian@0: }