Вы находитесь на странице: 1из 9

/* * Created by SharpDevelop.

* User: User * Date: 6/16/2012 * Time: 8:23 AM * * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using using using using using using using System; System.Drawing; System.Windows.Forms; System.Collections.Generic; System.Data; System.Data.SQLite; Email_Tray_Tool;

namespace Email_Tray_Tool_Config { /// <summary> /// Description of Config. /// </summary> /// public partial class frm_Config : Form { private string dbConnection = "Data Source=Config.s3db"; public frm_Config() { // // The InitializeComponent() call is required for Window s Forms designer support. // InitializeComponent(); // // TODO: Add constructor code after the InitializeCompon ent() call. // } private void Frm_ConfigLoad(object sender, EventArgs e) { // HideConfigMenus(); } private void Cbx_ShowPWCheckedChanged(object sender, System.Even tArgs e) { if (pnl_Admin.Visible) { if (tbx_OldPW.PasswordChar.Equals('*')) { tbx_OldPW.PasswordChar = (char)(0); tbx_NewPW.PasswordChar = (char)(0); tbx_NewPWconfirm.PasswordChar = (char)(0 ); }

else { tbx_OldPW.PasswordChar = '*'; tbx_NewPW.PasswordChar = '*'; tbx_NewPWconfirm.PasswordChar = '*'; } } if (pnl_VerifyPW.Visible) { if (tbx_SettingsPW.PasswordChar.Equals('*')) tbx_SettingsPW.PasswordChar = (char)(0); else tbx_SettingsPW.PasswordChar = '*'; } if (pnl_Config.Visible) { if (tbx_PW.PasswordChar.Equals('*')) tbx_PW.PasswordChar = (char)(0); else tbx_PW.PasswordChar = '*'; } } private void tbx_SettingsPW_KeyPress(object sender, KeyPressEven tArgs e) { if (e.KeyChar == 13) { btn_VerifyConfigPW.PerformClick(); } } private void tbx_AdminPW_KeyPress(object sender, KeyPressEventAr gs e) { if (e.KeyChar == 13) { btn_SaveAdmPW.PerformClick(); } } private void tbx_Timer_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == 13) { btn_SaveTimer.PerformClick(); } } private void Btn_CancelClick(object sender, EventArgs e) { this.Close(); } private void Btn_SaveConfigClick(object sender, EventArgs e) { UpdateConfig(); }

// Sample procedures on using SQLite // http://www.dreamincode.net/forums/topic/157830-using-sqlite-w ith-c%23/ // private bool UpdateDB() { bool updated = false; try { SQLiteConnection cnn = new SQLiteConnection(dbCo nnection); cnn.Open(); SQLiteCommand mycommand = new SQLiteCommand(cnn) ; string cmd = "update tbl_Settings set UserName = \"" + tbx_User.Text + "\", "; cmd += "Password = \"" + tbx_PW.Text + "\", "; cmd += "ServerName = \"" + tbx_Server.Text + "\" , "; cmd += "Port = \"" + tbx_Port.Text + "\", "; string myssl; if (rbtn_SSL.Checked) myssl = "yes"; else myssl = "no"; cmd += "SSL = \"" + myssl + "\" "; cmd += "where SettingsID = 1 "; mycommand.CommandText = cmd; SQLiteDataReader reader = mycommand.ExecuteReade r(); reader.Dispose(); cnn.Close(); updated = true; } catch(Exception fail) { updated = false; string error = "Error in saving Config Settings to database:\n\n"; error += fail.Message.ToString() + "\n\n"; MessageBox.Show(error); } return updated; } private void UpdateConfig() { if (UpdateDB()) { MessageBox.Show("Configuration Settings saved... "); this.Close(); } else MessageBox.Show("Error saving Configuration Sett ings..."); } private void Btn_CancelSettingsPWClick(object sender, EventArgs e)

{ this.Close(); } private DataTable GetDataTable(string dbConnection, string sql) { DataTable dt = new DataTable(); try { SQLiteConnection cnn = new SQLiteConnection(dbCo nnection); cnn.Open(); SQLiteCommand mycommand = new SQLiteCommand(cnn) ; mycommand.CommandText = sql; SQLiteDataReader reader = mycommand.ExecuteReade r(); dt.Load(reader); reader.Close(); cnn.Close(); } catch (Exception e) { throw new Exception(e.Message); } return dt; } private void ShowConfig() { try { string query = "select UserName \"User Name\", " ; query += "Password \"Password\", "; query += "ServerName \"Server Name\", "; query += "Port \"Port\", "; query += "SSL \"SSL\" "; query += "from tbl_Settings "; query += "limit 1;"; DataTable savedConfig = GetDataTable(dbConnectio n, query); DataGrid savedConfigDataGrid = new DataGrid(); savedConfigDataGrid.DataSource = savedConfig; foreach (DataRow row in savedConfig.Rows) { tbx_User.Text = row["User Name"].ToStrin g(); tbx_PW.Text = row["Password"].ToString() ; tbx_Server.Text = row["Server Name"].ToS tring(); tbx_Port.Text = row["Port"].ToString(); if (row["SSL"].ToString().ToLower() == " yes") { rbtn_SSL.Checked = true; rbtn_NoSSL.Checked = false; } else

{ rbtn_SSL.Checked = false; rbtn_NoSSL.Checked = true; } } savedConfigDataGrid.Dispose(); savedConfig.Dispose(); } catch(Exception fail) { string error = "Error in verifying database:\n\n "; error += fail.Message.ToString() + "\n\n"; MessageBox.Show(error); } } private bool PWVerifiedOK() { bool OK = false; try { int passwordID = 0; string password = (tbx_SettingsPW.Text).ToLower( ); string query = "select PasswordID \"PW ID\", Use rName \"User Name\", Password \"Password\" "; query += "from tbl_Password "; query += "where \"User Name\" = \"admin\" and \" Password\" = \"" + password + "\" limit 1;"; DataTable savedPW = GetDataTable(dbConnection, q uery); DataGrid savedPWDataGrid = new DataGrid(); savedPWDataGrid.DataSource = savedPW; foreach (DataRow row in savedPW.Rows) { passwordID = Convert.ToInt16(row["PW ID" ].ToString()); } savedPWDataGrid.Dispose(); savedPW.Dispose(); if (passwordID > 0) OK = true; else { MessageBox.Show("Error in Admin password entry."); OK = false; } } catch(Exception fail) { string error = "Error in verifying database for Admin password entry:\n\n"; error += fail.Message.ToString() + "\n\n"; MessageBox.Show(error); } return OK; }

private void Btn_VerifyConfigPWClick(object sender, EventArgs e) { if (PWVerifiedOK()) { ShowConfigMenu(); ShowConfig(); } } private bool UpdatedAdminPW(string passwordUpdate) { bool OK = false; try { SQLiteConnection cnn = new SQLiteConnection(dbCo nnection); cnn.Open(); SQLiteCommand mycommand = new SQLiteCommand(cnn) ; string cmd = "update tbl_Password set Password = \"" + passwordUpdate + "\" "; cmd += "where UserName = \"admin\" "; mycommand.CommandText = cmd; SQLiteDataReader reader = mycommand.ExecuteReade r(); reader.Dispose(); cnn.Close(); OK = true; } catch(Exception fail) { OK = false; string error = "Error in updating Admin Password in database:\n\n"; error += fail.Message.ToString() + "\n\n"; //MessageBox.Show(error); } return OK; } private bool AdminPWupdated() { bool OK = false; try { int passwordID = 0; string oldpassword = (tbx_OldPW.Text).ToLower(); string newpassword = (tbx_NewPW.Text).ToLower(); string confirmnewpassword = (tbx_NewPWconfirm.Te xt).ToLower(); string query = "select PasswordID \"PW ID\", Use rName \"User Name\", Password \"Password\" "; query += "from tbl_Password "; query += "where \"User Name\" = \"admin\" and \" Password\" = \"" + oldpassword + "\" limit 1;"; DataTable savedPW = GetDataTable(dbConnection, q uery); DataGrid savedPWDataGrid = new DataGrid(); savedPWDataGrid.DataSource = savedPW; foreach (DataRow row in savedPW.Rows)

{ passwordID = Convert.ToInt16(row["PW ID" ].ToString()); } savedPWDataGrid.Dispose(); savedPW.Dispose(); if (passwordID > 0) { if ((newpassword != "" || confirmnewpass word != "") && (newpassword == confirmnewpassword) && newpassword.Length >= 5) { if (UpdatedAdminPW(newpassword)) OK = true; } else MessageBox.Show("Error confirmin g desired password (only 5 characters and up is allowed)."); } else { MessageBox.Show("Admin password entered incorrect."); OK = false; } } catch(Exception fail) { string error = "Error in updating database for A dmin password:\n\n"; error += fail.Message.ToString() + "\n\n"; MessageBox.Show(error); } return OK; } private bool EmailTimerChanged() { bool OK = false; try { SQLiteConnection cnn = new SQLiteConnection(dbCo nnection); cnn.Open(); SQLiteCommand mycommand = new SQLiteCommand(cnn) ; string cmd = "update tbl_Password set Timer = \" " + Convert.ToInt32(tbx_Minutes.Text) + "\" "; cmd += "where UserName = \"admin\" "; mycommand.CommandText = cmd; SQLiteDataReader reader = mycommand.ExecuteReade r(); reader.Dispose(); cnn.Close(); OK = true; } catch(Exception fail) { OK = false; string error = "Error in setting e-mail check fr

equency:\n\n"; error += fail.Message.ToString() + "\n\n"; MessageBox.Show(error); } return OK; } private void Btn_SaveAdmPWClick(object sender, EventArgs e) { if (AdminPWupdated()) { MessageBox.Show("Admin password updated."); this.Close(); } } private void Btn_SaveTimerClick(object sender, EventArgs e) { if (EmailTimerChanged()) { MessageBox.Show("Timer setting for e-mail check frequency changed."); this.Close(); } } private void HideConfigMenus() { pnl_VerifyPW.Visible = false; pnl_Admin.Visible = false; pnl_Config.Visible = false; pnl_TimerSetting.Visible = false; } private int TimerSettingValue() { int timer = 30; try { string query = "select Timer \"Timer\" "; query += "from tbl_Password "; query += "where UserName = \"admin\" limit 1;"; DataTable tmr = GetDataTable(dbConnection, query ); DataGrid tmrDataGrid = new DataGrid(); tmrDataGrid.DataSource = tmr; foreach (DataRow row in tmr.Rows) { timer = Convert.ToInt32(row["Timer"].ToS tring()); } tmrDataGrid.Dispose(); tmr.Dispose(); } catch(Exception fail) { string error = "Error in getting database value of timer:\n\n"; error += fail.Message.ToString() + "\n\n"; MessageBox.Show(error);

} return timer; } private void ShowConfigMenu() { pnl_VerifyPW.Visible = false; pnl_Admin.Visible = false; pnl_Config.Visible = true; pnl_TimerSetting.Visible = false; } public void ShowAdminMenu() { pnl_VerifyPW.Visible = false; pnl_Admin.Visible = true; pnl_Config.Visible = false; pnl_TimerSetting.Visible = false; } public void ShowVerifyPWMenu() { pnl_VerifyPW.Visible = true; pnl_Admin.Visible = false; pnl_Config.Visible = false; pnl_TimerSetting.Visible = false; } public void ShowTimerSetting() { pnl_VerifyPW.Visible = false; pnl_Admin.Visible = false; pnl_Config.Visible = false; pnl_TimerSetting.Visible = true; tbx_Minutes.Text = TimerSettingValue().ToString(); } } }

Вам также может понравиться