Пример #1
0
 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();
            }
        }
Пример #3
0
 private void btnEdit_Click(object sender, EventArgs e)
 {
     cmdFlag = CmdFlag.Edit;
     EnableEdit(true);
     EnableSave(true);
     this.txtUserName.ReadOnly = true;
 }
Пример #4
0
 private void btnDiscard_Click(object sender, EventArgs e)
 {
     cmdFlag = CmdFlag.Null;
     getCurrentRowData();
     EnableEdit(false);
     EnableSave(false);
 }
Пример #5
0
 public FrmUsers()
 {
     InitializeComponent();
     cmdFlag = CmdFlag.Null;
 }
Пример #6
0
        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));
        }