Beispiel #1
0
 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 + ")");
 }
Beispiel #2
0
        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;
        }
Beispiel #3
0
 /// <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));
            }
        }
Beispiel #5
0
        /// <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+")");
        }
Beispiel #6
0
        /// <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.");
        }
Beispiel #7
0
 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);
     }
 }
Beispiel #8
0
 /// <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);
 }
Beispiel #9
0
 async public void RemoveCalendarEvent(PackageViewModel package)
 {
     if (package.CalendarID != null)
     {
         await Calendar.DeleteAppointmentAsync(package.CalendarID);
     }
 }
Beispiel #10
0
        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;
        }