/// <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."); } } })); }