public PerformanceMonitorRecord DeletePermanceMonitorRecord(int id)
        {
            PerformanceMonitorRecord recordToDelete =
                _performanceMonitorDataService.PerformanceMonitorRecords.FirstOrDefault(r => r.Id == id);

            if (recordToDelete == null)
            {
                _notifier.Error(T("Could not find the performance counter record with id {0}", id));
                return(null);
            }

            //check and delete childrecords
            List <PerformanceMonitorDataRecord> dataRecordsToDelete =
                _performanceMonitorDataService.GetDataRecords(id);

            if (dataRecordsToDelete.Count > 0)
            {
                foreach (PerformanceMonitorDataRecord dataRecordToDelete in dataRecordsToDelete)
                {
                    _performanceMonitorDataService.DeletePerformanceMonitorDataRecord(dataRecordToDelete);
                }
            }

            if (_performanceMonitorDataService.DeletePerformanceMonitorRecord(recordToDelete))
            {
                _notifier.Information(T("performance counter is deleted"));
            }
            else
            {
                _notifier.Error(T("Failed to delete performance counter"));
            }

            return(recordToDelete);
        }