private void btnAdd_Click(object sender, EventArgs e) { cmdFlag = CmdFlag.Add; EnableEdit(true); reset(); EnableSave(true); this.plOld.Visible = false; }
public void TestParse() { var emptyWords = Enumerable.Empty <string>(); var flag0 = new CmdFlag(true, 0, "-0"); var flag1 = new CmdFlag(true, 1, "-1"); var flag2 = new CmdFlag(true, 2, "-2", "-22"); var flag3 = new CmdFlag(false, 1, "-3"); var parser = new CmdParser() .AddFlag(flag0, "0", emptyWords) .AddFlag(flag1, "1", emptyWords) .AddFlag(flag2, "2", emptyWords) .AddFlag(flag3, "3", emptyWords); { var expected = new Dictionary <CmdFlag, IEnumerable <string> >() { [flag0] = new string[0], [flag1] = new[] { "A" }, [flag2] = new[] { "B", "C" }, }; parser.TryParse("-0 -1 A -2 B C".Split(' '), out var map1).IsTrue(); IsExpectedArgMap(map1, expected); parser.TryParse("-2 B C -1 A -0".Split(' '), out var map2).IsTrue(); IsExpectedArgMap(map2, expected); // It's OK for the same flag to appear twice, returned map contains value appearing later. parser.TryParse("-0 -1 B -1 A -2 B C".Split(' '), out var map3).IsTrue(); IsExpectedArgMap(map3, expected); } { parser.TryParse("-0 -1 A -22 B C -3 D".Split(' '), out var map).IsTrue(); IsExpectedArgMap(map, new Dictionary <CmdFlag, IEnumerable <string> >() { [flag0] = new string[0], [flag1] = new[] { "A" }, [flag2] = new[] { "B", "C" }, [flag3] = new[] { "D" }, }); } { parser.TryParse("-0 -1 A -2 A B -3 A -4 A".Split(' '), out var _).IsFalse(); parser.TryParse("-0 -1 A -2 A B C -3 A".Split(' '), out var _).IsFalse(); parser.TryParse("-1 A -2 A B -3 A".Split(' '), out var _).IsFalse(); } }
private void btnEdit_Click(object sender, EventArgs e) { cmdFlag = CmdFlag.Edit; EnableEdit(true); EnableSave(true); this.txtUserName.ReadOnly = true; }
private void btnDiscard_Click(object sender, EventArgs e) { cmdFlag = CmdFlag.Null; getCurrentRowData(); EnableEdit(false); EnableSave(false); }
public FrmUsers() { InitializeComponent(); cmdFlag = CmdFlag.Null; }
private void btnSave_Click(object sender, EventArgs e) { string userName = this.txtUserName.Text.Trim().ToUpper(); string password = this.txtPassword.Text.Trim(); string repassword = this.txtRePassword.Text.Trim(); string oldPassword = this.txtOldPassword.Text.Trim(); string sql = string.Empty; OleDbParameter[] parms = null; if (userName == string.Empty /*|| password == string.Empty || repassword == string.Empty*/) { MessageBox.Show("User name cannot be empty.", "hint", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (password != repassword) { MessageBox.Show("The two passwords differ.", "hint", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } try { password = UserManager.GetMd5Hash(password); switch (cmdFlag) { case CmdFlag.Add: sql = @"select UserName from Account where UserName=@UserName"; parms = new OleDbParameter[] { new OleDbParameter("@UserName",OleDbType.VarWChar) }; parms[0].Value = userName; if (sqlHelper.ExecuteScalar(sql, parms) != null) { MessageBox.Show("User name already exists.", "hint", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sql = "insert into Account ([UserName],[Password]) values (@UserName,@Password)"; parms = new OleDbParameter[] { new OleDbParameter("@UserName",OleDbType.VarWChar), new OleDbParameter("@Password",OleDbType.VarWChar), }; parms[0].Value = userName; parms[1].Value = password; // reset(); sqlHelper.ExecuteNonQuery(sql, parms); break; case CmdFlag.Edit: sql = "select password from Account where UserName=@UserName"; parms = new OleDbParameter[] { new OleDbParameter("@UserName",OleDbType.VarWChar), }; parms[0].Value = userName; string hashPwd = sqlHelper.ExecuteScalar(sql, parms).ToString(); if (!UserManager.VerifyMd5Hash(oldPassword, hashPwd)) { MessageBox.Show("Old password error.", "hint", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sql = @"UPDATE Account SET [Password]=@Password " + "WHERE UserName=@UserName"; parms = new OleDbParameter[] { new OleDbParameter("@Password",OleDbType.VarWChar), new OleDbParameter("@UserName",OleDbType.VarWChar), }; parms[0].Value = password; parms[1].Value = userName; sqlHelper.ExecuteNonQuery(sql, parms); break; } } catch (Exception ex) { MessageBox.Show(ex.Message, "hint", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } refreshGrid(); EnableEdit(false); EnableSave(false); cmdFlag = CmdFlag.Null; MessageBox.Show("Data has been modified.", "hint", MessageBoxButtons.OK, MessageBoxIcon.Information); }
/// <summary> /// 对服务可执行程序执行CMD命令 /// </summary> /// <param name="serviceExecutableFilePath">服务可执行文件文件夹</param> /// <param name="serviceExeName">服务可执行文件名称</param> /// <param name="flag">CMD命令</param> public bool RunServiceCmd(string serviceExecutableFilePath, string serviceExeName, CmdFlag flag) { string excuteCommand = string.Empty; switch (flag) { case CmdFlag.install: excuteCommand = "install"; break; case CmdFlag.start: excuteCommand = "start"; break; case CmdFlag.uninstall: excuteCommand = "uninstall"; break; default: Environment.Exit(0); break; } return(ExcuteCmd(serviceExecutableFilePath, serviceExeName, excuteCommand)); }