This pop-up is shown once a week, on the first work day of the week
Inheritance: System.Windows.Window
Exemple #1
0
        /// <summary>
        /// On the first workday of the week, remind the user ONCE to share
        /// the collected study data with us.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void CheckForStudyDataSharedReminder(object sender, EventArgs e)
        {
            // only show reminder if the upload is enabled (i.e. during a study)
            if (!Settings.IsUploadEnabled || !Settings.IsUploadReminderEnabled)
            {
                return;
            }

            var lastTimeShown = Database.GetInstance().GetSettingsDate("LastTimeUploadReminderShown", DateTimeOffset.MinValue);
            var databaseSince = Database.GetInstance().GetSettingsDate("SettingsTableCreatedDate", DateTimeOffset.MinValue);
            var today         = DateTime.Now.Date;

            // check if the reminder should be shown
            if ((today.DayOfWeek == DayOfWeek.Saturday || today.DayOfWeek == DayOfWeek.Sunday) || // do not show on weekends
                (today - databaseSince).Days < 10 ||                                              //  only if there is at least 10 days since the tool was installed
                (today - lastTimeShown).Days < 7)                                                 // only show once a week
            {
                return;
            }

            // log when reminder was shown
            Database.GetInstance().LogInfo("Shown the user the study data upload reminder.");
            Database.GetInstance().SetSettings("LastTimeUploadReminderShown", today.Date.ToShortDateString());

            // show the reminder
            Application.Current.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(
                                                      () =>
            {
                var reminderWindow = new Upload.UploadReminder();
                if (reminderWindow.ShowDialog() == true) // show pop-up, handle response
                {
                    if (reminderWindow.UserSelectedShareData)
                    {
                        UploadTrackedData(false);
                    }
                    else
                    {
                        Database.GetInstance().LogInfo("The participant didn't want to share the study data when the upload reminder prompt was shown.");
                    }
                }
            }));
        }
        /// <summary>
        /// On the first workday of the week, remind the user ONCE to share
        /// the collected study data with us.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void CheckForStudyDataSharedReminder(object sender, EventArgs e)
        {
            // only show reminder if the upload is enabled (i.e. during a study)
            if (! Settings.IsUploadEnabled || ! Settings.IsUploadReminderEnabled) return;

            var lastTimeShown = Database.GetInstance().GetSettingsDate("LastTimeUploadReminderShown", DateTimeOffset.MinValue);
            var databaseSince = Database.GetInstance().GetSettingsDate("SettingsTableCreatedDate", DateTimeOffset.MinValue);
            var today = DateTime.Now.Date;

            // check if the reminder should be shown
            if ((today.DayOfWeek == DayOfWeek.Saturday || today.DayOfWeek == DayOfWeek.Sunday) || // do not show on weekends
                 (today - databaseSince).Days < 10 || //  only if there is at least 10 days since the tool was installed
                 (today - lastTimeShown).Days < 7) // only show once a week
                return;

            // log when reminder was shown
            Database.GetInstance().LogInfo("Shown the user the study data upload reminder.");
            Database.GetInstance().SetSettings("LastTimeUploadReminderShown", today.Date.ToShortDateString());

            // show the reminder
            Application.Current.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(
            () =>
            {
                var reminderWindow = new Upload.UploadReminder();
                if (reminderWindow.ShowDialog() == true) // show pop-up, handle response
                {
                    if (reminderWindow.UserSelectedShareData)
                    {
                        UploadTrackedData(false);
                    }
                    else
                    {
                        Database.GetInstance().LogInfo("The participant didn't want to share the study data when the upload reminder prompt was shown.");
                    }
                }
            }));
        }