/// <summary> /// Occurs when the Button control is clicked. Deletes an extisting Subject. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param> private void btnDelete_Click(object sender, EventArgs e) { DialogResult dialogResult = MessageBox.Show("Weet je het zeker?", "Vak Verwijderen", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { int result = 0; List <Grade> subjectGradesQuery = (from grade in grades where grade.RowIndex == model.RowIndex select grade).ToList(); List <Grade> gradeQuery = (from grade in grades where grade.RowIndex > model.RowIndex select grade).ToList(); List <Subject> subjectQuery = (from subject in subjects where subject.RowIndex > model.RowIndex select subject).ToList(); if (subjectGradesQuery.Count != 0) { for (int i = 0; i < subjectGradesQuery.Count; i++) { gradeController.Delete(grades[i]); } for (int i = 0; i < subjectQuery.Count; i++) { gradeQuery[i].RowIndex -= 1; gradeController.Edit(gradeQuery[i]); } } if (subjectQuery.Count != 0) { for (int i = 0; i < subjectQuery.Count; i++) { subjectQuery[i].RowIndex -= 1; subjectController.Edit(subjectQuery[i]); } } result = subjectController.Delete(model); if (result != 0) { this.Close(); } else { MessageBox.Show("Onbekend probleem bij het verwijderen van het vak."); } } }
/// <summary> /// Occurs when the value of a cell changes. Adds a new Grade if there wasn't no value. Edit an existing Grade if the value changed. Deletes an existing Grade if the value is empty. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="DataGridViewCellEventArgs"/> instance containing the event data.</param> private void dgvGrades_CellValueChanged(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex > -1 && subjects.Count == dgvGrades.RowCount) { if (selectedUser.Id == currentUser.Id) { int result = 0; Grade query = (from grade in grades where grade.RowIndex == Convert.ToUInt32(e.RowIndex) && grade.ColumnIndex == Convert.ToUInt32(e.ColumnIndex) select grade).FirstOrDefault(); if (query == null && dgvGrades[e.ColumnIndex, e.RowIndex].Value != null) { //adds a grade float number; string value = dgvGrades[e.ColumnIndex, e.RowIndex].Value.ToString().Replace(',', '.'); float.TryParse(value, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out number); if (number > 10.0 || number < 1.0) { MessageBox.Show("Kon het cijfer niet toevoegen.\nWaarde moet tussen de 1,0 en 10 liggen."); result = 2; } else { result = gradeController.Create(new Grade() { ColumnIndex = Convert.ToUInt32(e.ColumnIndex), RowIndex = Convert.ToUInt32(e.RowIndex), UserId = selectedUser.Id, Number = (float)Math.Round(number, 1) }); } if (result == 0) { MessageBox.Show("Kon het cijfer niet toevoegen."); } } else if (query != null && dgvGrades[e.ColumnIndex, e.RowIndex].Value == null) { //deletes the grade result = gradeController.Delete(query); if (result == 0) { MessageBox.Show("Kon het cijfer niet verwijderen."); } } else if (query != null && string.IsNullOrEmpty(dgvGrades[e.ColumnIndex, e.RowIndex].Value.ToString()) != true) { //edits the grade float number; string value = dgvGrades[e.ColumnIndex, e.RowIndex].Value.ToString().Replace(',', '.'); float.TryParse(value, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out number); if (number > 10.0 || number < 1.0) { MessageBox.Show("Kon het cijfer niet wijzigen.\nWaarde moet tussen de 1,0 en 10 liggen."); result = 2; number = 1.0f; } else { query.Number = (float)Math.Round(number, 1); result = gradeController.Edit(query); } if (result == 0) { MessageBox.Show("Kon het cijfer niet wijzigen."); } } LoadToGrid(typeof(Grade)); } else { MessageBox.Show("Kan cijfers voor andere gebruikers niet toevoegen/wijzigen."); } } }
/// <summary> /// Occurs when the value of a cell changes. Adds a new Appointment if there wasn't no value. Edit an existing Appointment if the value changed. Deletes an existing Appointment if the value is empty. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="DataGridViewCellEventArgs"/> instance containing the event data.</param> private void dgvUsers_CellValueChanged(object sender, DataGridViewCellEventArgs e) { dgvUsers.CellValueChanged -= dgvUsers_CellValueChanged; dgvUsers[e.ColumnIndex, e.RowIndex].Value = false; dgvUsers.CellValueChanged += dgvUsers_CellValueChanged; if (e.ColumnIndex == 1) { DialogResult dialogResult = MessageBox.Show("U staat op het punt om deze gebruiker te verwijderen.\nAlle taken, vakken, cijfers en afspraken zullen van deze gebruiker verwijderd worden.", "Gebruiker verwijderen", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { int result = 0; User query = null; uint?id = null; List <DataGridViewRow> rows = (from row in dgvUsers.Rows.Cast <DataGridViewRow>() select row).ToList(); id = (from row in rows where Convert.ToBoolean(row.Cells["verwijderen?"].Value) == true select Convert.ToUInt32(row.Cells[dgvUsers.ColumnCount - 1].Value)).FirstOrDefault(); query = (from user in users where user.Id == id select user).FirstOrDefault(); if (query != null) { tasks = taskController.Details(id); repeatingTasks = repeatingTaskController.Details(id); grades = gradeController.Details(id); subjects = subjectController.Details(id); appointments = appointmentController.Details(id); for (int i = 0; i < tasks.Count; i++) { taskController.Delete(tasks[i]); } for (int i = 0; i < repeatingTasks.Count; i++) { repeatingTaskController.Delete(repeatingTasks[i]); } for (int i = 0; i < grades.Count; i++) { gradeController.Delete(grades[i]); } for (int i = 0; i < subjects.Count; i++) { subjectController.Delete(subjects[i]); } for (int i = 0; i < appointments.Count; i++) { appointmentController.Delete(appointments[i]); } result = userController.Delete(query); if (result == 0) { MessageBox.Show("Kon de gebruiker niet verwijderen."); } else { MessageBox.Show("De gebruiker is succesvol verwijderd."); } } LoadToGrid(); } } }