/// <summary> /// Cancel native alarm /// and then remove AlarmRecord from ObservableAlarmList and AlarmRecordDictionary /// </summary> /// <param name="alarm">AlarmRecord</param> public static void DeleteAlarm(AlarmRecord alarm) { Console.WriteLine("DeleteAlarm:" + alarm.ToString()); // Cancel the native alarm AlarmNativeHandler.DeleteAlarm(alarm); string UID = alarm.GetUniqueIdentifier(); // Delete alarm from dictionary AlarmModel.AlarmRecordDictionary.Remove(UID); // Delete alarm from List for (int i = AlarmModel.ObservableAlarmList.Count - 1; i >= 0; i--) { if (AlarmModel.ObservableAlarmList[i].GetUniqueIdentifier() == UID) { ObservableAlarmList.RemoveAt(i); break; } } AlarmModel.SaveDictionary(); }
/// <summary> /// AlarmModel constructor /// </summary> public AlarmModel() { ObservableAlarmList = new ObservableCollection <AlarmRecord>(); AlarmRecordDictionary = AlarmPersistentHandler.DeserializeAlarmRecord(); BindableAlarmRecord = new AlarmRecord(); if (AlarmRecordDictionary == null) { AlarmRecordDictionary = new Dictionary <string, AlarmRecord>(); } else { foreach (var alarmItem in AlarmRecordDictionary) { Console.WriteLine("alarmItem key:" + alarmItem.Key); // Key is DateCreated var keyString = alarmItem.Key; // Retrieve alarm record AlarmRecord retrieved = alarmItem.Value; Console.WriteLine("retrieved:" + retrieved.ToString()); // Add the retrieved alarm to list for AlarmListUI ObservableAlarmList.Add(retrieved); } } }