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