diff --git a/Nodejs/Product/Nodejs/NodejsPackage.cs b/Nodejs/Product/Nodejs/NodejsPackage.cs index 332df7a94..1ecfee526 100644 --- a/Nodejs/Product/Nodejs/NodejsPackage.cs +++ b/Nodejs/Product/Nodejs/NodejsPackage.cs @@ -582,40 +582,7 @@ private void OnSurveyNewsDocumentCompleted(object sender, WebBrowserDocumentComp } internal void CheckSurveyNews(bool forceCheckAndWarnIfNoneAvailable) { - bool shouldQueryServer = false; - if (forceCheckAndWarnIfNoneAvailable) { - shouldQueryServer = true; - } else { - shouldQueryServer = true; - var options = GeneralOptionsPage; - // Ensure that we don't prompt the user on their very first project creation. - // Delay by 3 days by pretending we checked 4 days ago (the default of check - // once a week ensures we'll check again in 3 days). - if (options.SurveyNewsLastCheck == DateTime.MinValue) { - options.SurveyNewsLastCheck = DateTime.Now - TimeSpan.FromDays(4); - options.SaveSettingsToStorage(); - } - - var elapsedTime = DateTime.Now - options.SurveyNewsLastCheck; - switch (options.SurveyNewsCheck) { - case SurveyNewsPolicy.Disabled: - break; - case SurveyNewsPolicy.CheckOnceDay: - shouldQueryServer = elapsedTime.TotalDays >= 1; - break; - case SurveyNewsPolicy.CheckOnceWeek: - shouldQueryServer = elapsedTime.TotalDays >= 7; - break; - case SurveyNewsPolicy.CheckOnceMonth: - shouldQueryServer = elapsedTime.TotalDays >= 30; - break; - default: - Debug.Assert(false, String.Format("Unexpected SurveyNewsPolicy: {0}.", options.SurveyNewsCheck)); - break; - } - } - - if (shouldQueryServer) { + if (forceCheckAndWarnIfNoneAvailable || ShouldQuerySurveryNewsServer()) { var options = GeneralOptionsPage; options.SurveyNewsLastCheck = DateTime.Now; options.SaveSettingsToStorage(); @@ -623,6 +590,32 @@ internal void CheckSurveyNews(bool forceCheckAndWarnIfNoneAvailable) { } } + private bool ShouldQuerySurveryNewsServer() { + var options = GeneralOptionsPage; + // Ensure that we don't prompt the user on their very first project creation. + // Delay by 3 days by pretending we checked 4 days ago (the default of check + // once a week ensures we'll check again in 3 days). + if (options.SurveyNewsLastCheck == DateTime.MinValue) { + options.SurveyNewsLastCheck = DateTime.Now - TimeSpan.FromDays(4); + options.SaveSettingsToStorage(); + } + + var elapsedTime = DateTime.Now - options.SurveyNewsLastCheck; + switch (options.SurveyNewsCheck) { + case SurveyNewsPolicy.Disabled: + return false; + case SurveyNewsPolicy.CheckOnceDay: + return elapsedTime.TotalDays >= 1; + case SurveyNewsPolicy.CheckOnceWeek: + return elapsedTime.TotalDays >= 7; + case SurveyNewsPolicy.CheckOnceMonth: + return elapsedTime.TotalDays >= 30; + default: + Debug.Assert(false, String.Format("Unexpected SurveyNewsPolicy: {0}.", options.SurveyNewsCheck)); + return false; + } + } + internal static void NavigateTo(string filename, int line, int col) { VsUtilities.NavigateTo(Instance, filename, NodejsProjectNode.IsNodejsFile(filename) ? typeof(NodejsEditorFactory).GUID : Guid.Empty, line, col); }