/// <summary> /// Get list of currently set alarms for this application. /// </summary> /// <returns>Alarm list.</returns> public List <AlarmInfoViewModel> GetAlarmList() { var alarmList = new List <AlarmInfoViewModel>(); IEnumerable <Alarm> systemAlarmList; try { systemAlarmList = AlarmManager.GetAllScheduledAlarms(); } catch (Exception e) { Debug.WriteLine("Cannot list scheduled alarms. Exception message: " + e.Message); return(alarmList); } if (systemAlarmList == null) { return(alarmList); } foreach (var alarm in systemAlarmList) { var appInfo = ApplicationManager.GetInstalledApplication(alarm.AlarmAppControl.ApplicationId); if (appInfo == null) { continue; } int delay = 0; if (alarm.WeekFlag == 0 && alarm.Period != 0) { delay = Convert.ToInt32((alarm.ScheduledDate - DateTime.Now).TotalSeconds); // We don't allow delay equal or greater from 1 day so it would be some error we log and skip. if (delay >= 24 * 60 * 60) { Debug.WriteLine("ERROR: Alarm delay over accepted maximum value!"); continue; } } alarmList.Add(new AlarmInfoViewModel { AlarmReference = alarm, AlarmId = alarm.AlarmId, AppInfo = new AppInfo(appInfo.Label, appInfo.ApplicationId), Date = alarm.ScheduledDate, IsRepeatEnabled = alarm.WeekFlag != 0 || alarm.Period > 0, DaysFlags = AlarmWeek2DaysOfWeek(alarm.WeekFlag), Delay = delay }); } return(alarmList); }