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"); } } } }
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); }