public void CreateReminder(PackageViewModel package) { Reminder deliveryReminder = new Reminder(package.TrackingNumber); deliveryReminder.BeginTime = System.DateTime.Now.AddSeconds(30); deliveryReminder.ExpirationTime = System.DateTime.Now.AddSeconds(610); deliveryReminder.Content = "\"" + package.Name + "\" will be arriving today!"; ScheduledActionService.Add(deliveryReminder); Debug.WriteLine("Reminded added for package (" + package.TrackingNumber + ")"); }
async public void CreateCalendarEvent(PackageViewModel package) { Appointment appointment = new Appointment(); appointment.StartTime = new DateTimeOffset(package.DeliveryDate.Date.Add(((DateTime)App.Settings["DeliveryTime"]).TimeOfDay)); appointment.Duration = TimeSpan.FromHours(2); appointment.Details = package.Name; appointment.Subject = (string)App.Settings["DeliveryTitle"]; Debug.WriteLine("Calendar event created for package (" + package.TrackingNumber + ")"); await Calendar.SaveAppointmentAsync(appointment); package.CalendarID = appointment.LocalId; }
/// <summary> /// Edits the calendar event with localid and adjusts /// it to match package. Assigns the localid to package. /// </summary> /// <param name="localid"></param> /// <param name="package"></param> async public void EditCalendarEvent(string localid, PackageViewModel package) { if (localid != null) { var calendarEvent = await Calendar.GetAppointmentAsync(localid); calendarEvent.Details = package.Name; DateTime newDate = package.DeliveryDate.Date + ((DateTime)App.Settings["DeliveryTime"]).TimeOfDay; calendarEvent.StartTime = newDate; package.CalendarID = calendarEvent.LocalId; await Calendar.SaveAppointmentAsync(calendarEvent); Debug.WriteLine("Calendar event (" + localid + ") edited successfully"); } }
private void SavePackage(object sender, EventArgs e) { string name, tn; Carriers carrier = Carriers.INVALID; DateTime date; if (ValidateFields(out name, out tn, out carrier, out date)) { PackageViewModel package = new PackageViewModel() { Name = name, TrackingNumber = tn, Carrier = carrier, DeliveryDate = date }; // If we are editing an item, delete the original first // Delete any reminders attached to it as well if (DataContext != null) { App.ViewModel.EditPackage((PackageViewModel)DataContext, package, (bool)AddToCalendar.IsChecked, (bool)RemindersEnabled.IsChecked); } else { App.ViewModel.AddPackage(package, (bool)AddToCalendar.IsChecked, (bool)RemindersEnabled.IsChecked); } App.ViewModel.Save(); NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative)); } }
/// <summary> /// Edits an existing package by carrying over necessary /// information before deleting the old package and creating the /// replacement. /// </summary> public void EditPackage(PackageViewModel package, PackageViewModel editedPackage, bool keepOrAddCalendar, bool keepOrAddReminder) { Debug.WriteLine("Editing package ("+package.TrackingNumber+")..."); string calendarId = package.CalendarID; if ((calendarId != null) && keepOrAddCalendar) { EditCalendarEvent(calendarId, editedPackage); package.CalendarID = null; // Remove connection keepOrAddCalendar = false; // Keep, do not want AddPackage to make another } RemovePackage(package); AddPackage(editedPackage, keepOrAddCalendar, keepOrAddReminder); Debug.WriteLine("...done editing package ("+package.TrackingNumber+")"); }
/// <summary> /// Adds a new package and handles creation /// of calendar events or reminders. Does not save data to storage /// </summary> /// <param name="package"></param> public void AddPackage(PackageViewModel package, bool addToCalendar, bool createReminder) { Debug.WriteLine("Adding package (" + package.TrackingNumber + ")..."); App.ViewModel.Items.Add(package); if (addToCalendar) { App.ViewModel.CreateCalendarEvent(package); } if (createReminder) { App.ViewModel.CreateReminder(package); } Debug.WriteLine("...added package successfully."); }
public void RemoveReminder(PackageViewModel package) { try { ScheduledActionService.Remove(package.TrackingNumber); Debug.WriteLine("Reminded removed for package (" + package.TrackingNumber + ")"); } catch (Exception error) { Debug.WriteLine("ERROR: " + error.Message); } }
/// <summary> /// Removes package from Items and cleans up reminders /// and calendars (if they exist). Does not save data to storage /// </summary> /// <param name="package"></param> public void RemovePackage(PackageViewModel package) { Debug.WriteLine("Removing package (" + package.TrackingNumber + ")..."); if (HasReminder(package)) { RemoveReminder(package); } if (package.CalendarID != null) { RemoveCalendarEvent(package); } Items.Remove(package); }
async public void RemoveCalendarEvent(PackageViewModel package) { if (package.CalendarID != null) { await Calendar.DeleteAppointmentAsync(package.CalendarID); } }
public bool HasReminder(PackageViewModel package) { ScheduledAction reminder = ScheduledActionService.Find(package.TrackingNumber); if (reminder != null) { Debug.WriteLine("Reminder found for package (" + package.TrackingNumber + ")"); return true; } Debug.WriteLine("No reminder found for package (" + package.TrackingNumber + ")"); return false; }