private void menuToolsDatabaseCleanup_Click(object sender, EventArgs e)
 {
     FormDatabaseCleanup frmDatabaseCleanup = new FormDatabaseCleanup();
     if (frmDatabaseCleanup.ShowDialog(this) == DialogResult.OK)
     {
         CleanupDatabase(frmDatabaseCleanup.UnitCount, frmDatabaseCleanup.TimeUnit);
         LoadEventsFromDatabase();
     }
 }
        private void CleanupDatabase(int unitCount, FormDatabaseCleanup.TimeUnitType unitType)
        {
            DateTime maxDateTime = DateTime.Now;
            switch (unitType)
            {
                case FormDatabaseCleanup.TimeUnitType.Year:
                    maxDateTime = maxDateTime.AddYears(-unitCount);
                    break;
                case FormDatabaseCleanup.TimeUnitType.Month:
                    maxDateTime = maxDateTime.AddMonths(-unitCount);
                    break;
                case FormDatabaseCleanup.TimeUnitType.Day:
                    maxDateTime = maxDateTime.AddDays(-unitCount);
                    break;
                case FormDatabaseCleanup.TimeUnitType.Hour:
                    maxDateTime = maxDateTime.AddHours(-unitCount);
                    break;
                case FormDatabaseCleanup.TimeUnitType.Minute:
                    maxDateTime = maxDateTime.AddMinutes(-unitCount);
                    break;
                case FormDatabaseCleanup.TimeUnitType.Second:
                    maxDateTime = maxDateTime.AddSeconds(-unitCount);
                    break;
                default:
                    throw new ArgumentOutOfRangeException("unitType");
            }

            const string dbCleanupQuery = "delete from FileSystemEvent where FileSystemEventDate < @maxDateTime";
            try
            {
                QueryParameterSet queryParameterSet = new QueryParameterSet();
                queryParameterSet.Add("@maxDateTime", maxDateTime.ToString("yyyy-MM-dd HH:mm:ss"));
                DataProvider.Database.Query(dbCleanupQuery, queryParameterSet, false);
            }
            catch (Exception ex)
            {
                EventLogger.RecordException(Constants.AdminApplicationEventSource, ex, "Failed to clean up database: ");
                FormHelper.ShowErrorMessage("Failed to clean up database: " + ex.Message, "Error");
            }
        }