From a541dbd038257e74c0685470c76c21eab50b89ed Mon Sep 17 00:00:00 2001 From: Kevin Giszewski Date: Tue, 3 Oct 2017 13:27:03 -0400 Subject: [PATCH 1/3] Limit the version check to once every 7 days (unless the app is reloaded) --- .../Api/ArchetypeDataTypeController.cs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/app/Umbraco/Umbraco.Archetype/Api/ArchetypeDataTypeController.cs b/app/Umbraco/Umbraco.Archetype/Api/ArchetypeDataTypeController.cs index a82b980..4e89c9a 100644 --- a/app/Umbraco/Umbraco.Archetype/Api/ArchetypeDataTypeController.cs +++ b/app/Umbraco/Umbraco.Archetype/Api/ArchetypeDataTypeController.cs @@ -20,6 +20,9 @@ namespace Archetype.Api [PluginController("ArchetypeApi")] public class ArchetypeDataTypeController : UmbracoAuthorizedJsonController { + private static DateTime LastVersionCheck { get; set; } + private const int IntervalInDaysBetweenVersionChecks = 7; + public IEnumerable GetAllPropertyEditors() { return @@ -30,7 +33,7 @@ namespace Archetype.Api /// /// Gets all datatypes. /// - /// + /// System.Object. public object GetAll() { var dataTypes = Services.DataTypeService.GetAllDataTypeDefinitions(); @@ -139,6 +142,14 @@ namespace Archetype.Api [HttpPost] public object CheckForUpdates() { + if (!IsItTimeToCheck()) + { + return new + { + isUpdateAvailable = false + }; + } + if (!ArchetypeGlobalSettings.Instance.CheckForUpdates) { return new @@ -148,6 +159,7 @@ namespace Archetype.Api } var updateNotificationModel = ArchetypeHelper.Instance.CheckForUpdates(); + LastVersionCheck = DateTime.UtcNow; return new { @@ -158,5 +170,10 @@ namespace Archetype.Api url = updateNotificationModel.Url }; } + + internal bool IsItTimeToCheck() + { + return LastVersionCheck.AddDays(IntervalInDaysBetweenVersionChecks) < DateTime.UtcNow; + } } } From f32451fffa168e185d4322a1fd0ad5d465ff34f2 Mon Sep 17 00:00:00 2001 From: Kevin Giszewski Date: Tue, 3 Oct 2017 13:28:25 -0400 Subject: [PATCH 2/3] Clean up private var --- .../Umbraco.Archetype/Api/ArchetypeDataTypeController.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/Umbraco/Umbraco.Archetype/Api/ArchetypeDataTypeController.cs b/app/Umbraco/Umbraco.Archetype/Api/ArchetypeDataTypeController.cs index 4e89c9a..7d429f4 100644 --- a/app/Umbraco/Umbraco.Archetype/Api/ArchetypeDataTypeController.cs +++ b/app/Umbraco/Umbraco.Archetype/Api/ArchetypeDataTypeController.cs @@ -20,7 +20,7 @@ namespace Archetype.Api [PluginController("ArchetypeApi")] public class ArchetypeDataTypeController : UmbracoAuthorizedJsonController { - private static DateTime LastVersionCheck { get; set; } + private static DateTime _lastVersionCheck; private const int IntervalInDaysBetweenVersionChecks = 7; public IEnumerable GetAllPropertyEditors() @@ -159,7 +159,7 @@ namespace Archetype.Api } var updateNotificationModel = ArchetypeHelper.Instance.CheckForUpdates(); - LastVersionCheck = DateTime.UtcNow; + _lastVersionCheck = DateTime.UtcNow; return new { @@ -173,7 +173,7 @@ namespace Archetype.Api internal bool IsItTimeToCheck() { - return LastVersionCheck.AddDays(IntervalInDaysBetweenVersionChecks) < DateTime.UtcNow; + return _lastVersionCheck.AddDays(IntervalInDaysBetweenVersionChecks) < DateTime.UtcNow; } } } From e164be18235168615f6450725701f7b649430bd4 Mon Sep 17 00:00:00 2001 From: Kevin Giszewski Date: Tue, 3 Oct 2017 13:31:43 -0400 Subject: [PATCH 3/3] Merge logic --- .../Api/ArchetypeDataTypeController.cs | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/app/Umbraco/Umbraco.Archetype/Api/ArchetypeDataTypeController.cs b/app/Umbraco/Umbraco.Archetype/Api/ArchetypeDataTypeController.cs index 7d429f4..63c8a99 100644 --- a/app/Umbraco/Umbraco.Archetype/Api/ArchetypeDataTypeController.cs +++ b/app/Umbraco/Umbraco.Archetype/Api/ArchetypeDataTypeController.cs @@ -142,15 +142,7 @@ namespace Archetype.Api [HttpPost] public object CheckForUpdates() { - if (!IsItTimeToCheck()) - { - return new - { - isUpdateAvailable = false - }; - } - - if (!ArchetypeGlobalSettings.Instance.CheckForUpdates) + if (!ArchetypeGlobalSettings.Instance.CheckForUpdates || !IsItTimeToCheck()) { return new {