/// <summary> /// Create native alarm /// </summary> public static void CreateAlarm() { // create a native alarm using AlarmModel.BindableAlarmRecord // After then, update Native alarm ID. BindableAlarmRecord.NativeAlarmID = AlarmNativeHandler.CreateAlarm(BindableAlarmRecord); AlarmRecord record = new AlarmRecord(); record.DeepCopy(BindableAlarmRecord); ObservableAlarmList.Add(record); AlarmRecordDictionary.Add(record.GetUniqueIdentifier(), record); SaveDictionary(); }
/// <summary> /// Create native alarm /// </summary> public static void CreateAlarmAndSave() { // create a native alarm using AlarmModel.BindableAlarmRecord // After then, update Native alarm ID. BindableAlarmRecord.NativeAlarmID = DependencyService.Get <IAlarm>().CreateAlarm(BindableAlarmRecord); DependencyService.Get <ILog>().Debug("====== AlarmModel.CreateAlarm >> BindableAlarmRecord.NativeAlarmID : " + BindableAlarmRecord.NativeAlarmID); // ObservableAlarmList is ItemsSource for AlarmList view. This is bindable so this model // should be changed to reflect record change (adding a new alarm) AlarmRecord record = new AlarmRecord(); record.DeepCopy(BindableAlarmRecord); //AlarmModel.Compare(BindableAlarmRecord, record); ObservableAlarmList.Add(record); AlarmRecordDictionary.Add(record.GetUniqueIdentifier(), record); SaveDictionary(); }
/// <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> /// Cancel native alarm /// and then remove AlarmRecord from ObservableAlarmList and AlarmRecordDictionary /// </summary> /// <param name="alarm">AlarmRecord</param> public static void DeleteAlarm(AlarmRecord alarm) { DependencyService.Get <ILog>().Debug("======[START] AlarmModel.DeleteAlarm >> " + alarm); // Cancel the native alarm DependencyService.Get <IAlarm>().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; } } // Save AlarmModel.SaveDictionary(); DependencyService.Get <ILog>().Debug("======[END] AlarmModel.DeleteAlarm >> " + alarm); }