private async Task Save() { if (!string.IsNullOrEmpty(Name)) { Name = Name.TrimStart().TrimEnd(); } if (!string.IsNullOrEmpty(WakeUpText)) { WakeUpText = WakeUpText.TrimStart().TrimEnd(); } if (!string.IsNullOrEmpty(PackageName)) { PackageName = PackageName.TrimStart().TrimEnd(); } Alarm.TimeOffset = new DateTime(Date.Year, Date.Month, Date.Day, Time.Hours, Time.Minutes, 0); if (string.IsNullOrEmpty(Name)) { await Application.Current.MainPage.DisplayAlert("", AppResources.ForgotAlarmName, AppResources.OK); } else if (Alarm.TimeOffset.Subtract(DateTime.Now).Ticks < 0 && !DaysOfWeek.GetHasADayBeenSelected(Alarm.Days)) { await Application.Current.MainPage.DisplayAlert("", AppResources.SetTimePast, AppResources.OK); } else if (string.IsNullOrEmpty(WakeUpText) && Alarm.HasWakeUpText) { await Application.Current.MainPage.DisplayAlert("", AppResources.ForgotWordsThatWakeMeUp, AppResources.OK); } else if (string.IsNullOrEmpty(PackageName) && Alarm.IsLinkOtherApp) { await Application.Current.MainPage.DisplayAlert("", AppResources.ForgotLinkOtherApps, AppResources.OK); } else { if (!Alarm.IsActive) { Alarm.ChangeIsActive(Alarm, true); } Alarm.IsLaterAlarm = false; Alarm.IsGoOffPreAlarm = false; var id = Service.SaveAlarm(Alarm); if (Preferences.Get("MaxAlarmId", 3) < id) { Preferences.Set("MaxAlarmId", id); } await ClosePopup(); var diffString = CreateDateString.CreateTimeRemainingString(Alarm.NextAlarmTime); DependencyService.Get <IToastService>().Show(diffString); } }