Created
June 12, 2014 11:00
-
-
Save LucasMoffitt/74356e3c11e3e4542c5c to your computer and use it in GitHub Desktop.
Windows 8 Review Helper
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| public class ReviewHelper | |
| { | |
| private const int RunCountBeforePrompt = 6; | |
| public async void SuggestReview() | |
| { | |
| var version = Package.Current.Id.Version; | |
| var appVersion = string.Format("{0}.{1}.{2}.{3}", version.Major, version.Minor, version.Build, version.Revision); | |
| var savedVersion = SettingsManager.Get<string>("Version"); | |
| if (appVersion != savedVersion) | |
| { | |
| SettingsManager.Set("Version", appVersion); | |
| SettingsManager.Set("RunCount", 0); | |
| } | |
| var runCount = SettingsManager.Get<int>("RunCount"); | |
| if (runCount > RunCountBeforePrompt) | |
| return; | |
| if (runCount < RunCountBeforePrompt) | |
| { | |
| runCount++; | |
| SettingsManager.Set("RunCount", runCount); | |
| return; | |
| } | |
| runCount++; | |
| SettingsManager.Set("RunCount", runCount); | |
| var reviewReminder = new MessageDialog("It looks like you’ve used this app a few times now, would you like to leave a review or rating to let us know what you think? We’d love to hear from you and it should only take a second or two.", "So... What do you think?"); | |
| var reviewItNow = new UICommand("Sure, i'll review it now!"); | |
| reviewReminder.Commands.Add(reviewItNow); | |
| var doNotWant = new UICommand("No Thanks"); | |
| reviewReminder.Commands.Add(doNotWant); | |
| if (await reviewReminder.ShowAsync() == reviewItNow) | |
| Windows.System.Launcher.LaunchUriAsync(new Uri(string.Format("ms-windows-store:REVIEW?PFN={0}", Package.Current.Id.FamilyName))); | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| [TestClass] | |
| public class ReviewHelperTest | |
| { | |
| public ReviewHelperTest() | |
| { | |
| ResetSettings(); | |
| } | |
| [TestMethod] | |
| public void RunCountIncrementsAfterPromptingForReview() | |
| { | |
| var reviewHelper = new ReviewHelper(); | |
| reviewHelper.SuggestReview(); | |
| Assert.AreEqual(SettingsManager.Get<int>("RunCount"), 1); | |
| } | |
| [TestMethod] | |
| public void RunCountResetsAfterVersionChange() | |
| { | |
| var reviewHelper = new ReviewHelper(); | |
| reviewHelper.SuggestReview(); | |
| reviewHelper.SuggestReview(); | |
| reviewHelper.SuggestReview(); | |
| reviewHelper.SuggestReview(); | |
| Assert.AreEqual(SettingsManager.Get<int>("RunCount"), 4); | |
| SettingsManager.Set("Version", "1.1.1.1"); | |
| reviewHelper.SuggestReview(); | |
| Assert.AreEqual(SettingsManager.Get<int>("RunCount"), 1); | |
| } | |
| private void ResetSettings() | |
| { | |
| SettingsManager.Set("Version", string.Empty); | |
| SettingsManager.Set("RunCount", string.Empty); | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment