private void InitButtonChangePassword()
        {
            buttonChangePassword.Click += (_, e) =>
            {
                ChangePasswordView changePasswordView = new ChangePasswordView(Username);

                changePasswordView.ShowDialog();
            };
        }
        private void InitButtonLogin()
        {
            buttonLogin.Enabled = false;

            buttonLogin.Click += (_, e) =>
            {
                LoginUser = GetUserFromUI();

                Authenticate?.Invoke(this, e);

                // determine whether login is success
                if (IsSuccess)
                {
                    if (LoginUser.password == "")
                    {
                        ChangePasswordView changePasswordView = new ChangePasswordView(LoginUser.username);

                        changePasswordView.ShowDialog();
                    }

                    // open corresponding dashboard based on user's role
                    //if (RoleID == 0)
                    //{
                    //    AdminDashboardView adminDashboardView = new AdminDashboardView(LoginUser.username, RoleID);

                    //    adminDashboardView.ShowDialog();
                    //}
                    //else if (RoleID == 1 || RoleID == 2)
                    //{
                    //    DashboardView nonAdminDashboardView = new DashboardView(LoginUser.username, RoleID);

                    //    nonAdminDashboardView.ShowDialog();
                    //}
                    //else
                    //{
                    //    MessageBox.Show("This user don't have a role!");
                    //}
                    DashboardView dashboardView = new DashboardView(LoginUser.username, RoleID);

                    dashboardView.ShowDialog();
                }
                else
                {
                    MessageBox.Show("Login failed!");
                }
            };
        }