/// <summary>
        /// Deletes expired records in the database.
        /// </summary>
        private void CleanupExpiredRecords()
        {
            tasks        = taskController.Details(selectedUser.Id);
            appointments = appointmentController.Details(selectedUser.Id);

            List <Task> taskQuery = (from task in tasks
                                     where task.Date < DateTime.Today
                                     select task).ToList();

            List <Appointment> appointmentQuery = (from appointment in appointments
                                                   where appointment.Date < DateTime.Today && appointment.Date != new DateTime(1980, 1, 1)
                                                   select appointment).ToList();

            for (int i = 0; i < taskQuery.Count; i++)
            {
                taskController.Delete(taskQuery[i]);
            }

            for (int i = 0; i < appointmentQuery.Count; i++)
            {
                appointmentController.Delete(appointmentQuery[i]);
            }
        }
Example #2
0
        /// <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();
                }
            }
        }