コード例 #1
0
        private async void dgvAdmins_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex >= 0)
            {
                var      adminId  = dgvAdmins.Rows[e.RowIndex].Cells["AdminId"].Value;
                var      action   = dgvAdmins.Columns[e.ColumnIndex].Name;
                MenuForm menuForm = (MenuForm)this.MdiParent;

                if (action == "Edit")
                {
                    AddEditAdminForm form = new AddEditAdminForm(menuForm, _currentUsername, int.Parse(adminId.ToString()))
                    {
                    };
                    _helper.ShowForm(form, 15);
                }
                else if (action == "Delete")
                {
                    var confirm = MessageBox.Show("Are you sure to delete this admin? You will be logged out if you delete yourself.", "Confirm Delete", MessageBoxButtons.YesNo);
                    if (confirm == DialogResult.Yes)
                    {
                        var mbox  = new CustomMessageBox();
                        var admin = await _apiService.GetById <Model.Admin>(adminId);

                        var message = await _apiService.Delete <string>(adminId);

                        if (admin.Account.Username == _currentUsername)
                        {
                            LoginForm form = new LoginForm();
                            form.Show();
                            var menu = (MenuForm)this.MdiParent;
                            menu.Close();
                        }
                        else
                        {
                            AdminsForm form = new AdminsForm(_currentUsername)
                            {
                                MdiParent = (MenuForm)this.MdiParent,
                                Dock      = DockStyle.Fill
                            };
                            form.Show();
                            this.Close();
                        }
                        mbox.Show(message, "success");
                    }
                }
            }
        }
コード例 #2
0
        private async void saveBtn_Click(object sender, EventArgs e)
        {
            var messageBox = new CustomMessageBox();

            if (string.IsNullOrWhiteSpace(Username.Text) || Username.TextLength < 4 || Username.TextLength > 50)
            {
                messageBox.Show("Username length: 4-50", "error");
                return;
            }

            if (string.IsNullOrWhiteSpace(PassTxt.Text) || PassTxt.TextLength < 4 || PassTxt.TextLength > 50)
            {
                messageBox.Show("Password length: 4-50", "error");
                return;
            }

            if (!string.IsNullOrWhiteSpace(PassTxt.Text) && PassTxt.Text.Contains(" "))
            {
                messageBox.Show("Password can't contain spaces", "error");
                return;
            }


            if (string.IsNullOrWhiteSpace(Confirm.Text) || Confirm.TextLength < 4 || Confirm.TextLength > 50)
            {
                messageBox.Show("Confirmation length: 4-50", "error");
                return;
            }

            if (!string.IsNullOrWhiteSpace(Confirm.Text) && Confirm.Text.Contains(" "))
            {
                messageBox.Show("Confirmation can't contain spaces", "error");
                return;
            }

            if (PassTxt.Text != Confirm.Text)
            {
                messageBox.Show("Passwords don't match!", "error");
                return;
            }
            var usersApi = new APIService("users");
            var allUsers = await usersApi.Get <List <Model.User> >(null);

            var allAdmins = await _apiService.Get <List <Model.Admin> >(null);

            if (_adminId.HasValue)
            {
                var admin = await _apiService.GetById <Model.Admin>(_adminId);

                allAdmins.RemoveAll(a => a.Account.Username == admin.Account.Username);
            }

            foreach (var admin in allAdmins)
            {
                if (Username.Text == admin.Account.Username)
                {
                    messageBox.Show("Username already taken!", "error");
                    return;
                }
            }


            foreach (var user in allUsers)
            {
                if (user.Account.Username == Username.Text)
                {
                    messageBox.Show("Username already taken!", "error");
                    return;
                }
            }

            var thisAdmin = new Model.Admin();

            if (_adminId.HasValue)
            {
                thisAdmin = await _apiService.GetById <Model.Admin>(_adminId);
            }

            Model.Requests.InsertAdminRequest request = new Model.Requests.InsertAdminRequest()
            {
                Username        = Username.Text,
                Password        = PassTxt.Text,
                ConfirmPassword = Confirm.Text
            };

            if (_adminId.HasValue)
            {
                await _apiService.Update <Model.Admin>(_adminId, request);

                messageBox.Show("Admin updated successfully!", "success");
            }
            else
            {
                await _apiService.Insert <Model.Admin>(request);

                messageBox.Show("Admin added successfully!", "success");
            }

            if (_adminId.HasValue)
            {
                if (thisAdmin.Account.Username == _currentUsername)
                {
                    _currentUsername    = Username.Text;
                    APIService.Username = Username.Text;
                    APIService.Password = PassTxt.Text;
                    _menuForm.ChangeTopUsername(_currentUsername);
                }
            }

            foreach (var child in _menuForm.MdiChildren)
            {
                child.Close();
            }

            AdminsForm form = new AdminsForm(_currentUsername)
            {
                MdiParent = _menuForm,
                Dock      = DockStyle.Fill
            };

            form.Show();
            _helper.CloseForm(this, 15);
        }