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