diff --git a/Oqtane.Server/Infrastructure/Jobs/NotificationJob.cs b/Oqtane.Server/Infrastructure/Jobs/NotificationJob.cs
index 80f955e6..4147455b 100644
--- a/Oqtane.Server/Infrastructure/Jobs/NotificationJob.cs
+++ b/Oqtane.Server/Infrastructure/Jobs/NotificationJob.cs
@@ -40,7 +40,7 @@ namespace Oqtane.Infrastructure
log += "Processing Notifications For Site: " + site.Name + "
";
// get site settings
- List settings = settingRepository.GetSettings(EntityNames.Site, site.SiteId, EntityNames.Host, -1).ToList();
+ var settings = settingRepository.GetSettings(EntityNames.Site, site.SiteId, EntityNames.Host, -1);
if (!site.IsDeleted && settingRepository.GetSettingValue(settings, "SMTPEnabled", "True") == "True")
{
diff --git a/Oqtane.Server/Infrastructure/Jobs/PurgeJob.cs b/Oqtane.Server/Infrastructure/Jobs/PurgeJob.cs
index 5cf4c59c..89a2238d 100644
--- a/Oqtane.Server/Infrastructure/Jobs/PurgeJob.cs
+++ b/Oqtane.Server/Infrastructure/Jobs/PurgeJob.cs
@@ -40,18 +40,13 @@ namespace Oqtane.Infrastructure
foreach (Site site in sites)
{
log += "
Processing Site: " + site.Name + "
";
- int retention;
int count;
// get site settings
- Dictionary settings = GetSettings(settingRepository.GetSettings(EntityNames.Site, site.SiteId).ToList());
+ var settings = settingRepository.GetSettings(EntityNames.Site, site.SiteId, EntityNames.Host, -1);
// purge event log
- retention = 30; // 30 days
- if (settings.ContainsKey("LogRetention") && !string.IsNullOrEmpty(settings["LogRetention"]))
- {
- retention = int.Parse(settings["LogRetention"]);
- }
+ var retention = int.Parse(settingRepository.GetSettingValue(settings, "LogRetention", "30")); // 30 day default
try
{
count = logRepository.DeleteLogs(site.SiteId, retention);
@@ -65,11 +60,7 @@ namespace Oqtane.Infrastructure
// purge visitors
if (site.VisitorTracking)
{
- retention = 30; // 30 days
- if (settings.ContainsKey("VisitorRetention") && !string.IsNullOrEmpty(settings["VisitorRetention"]))
- {
- retention = int.Parse(settings["VisitorRetention"]);
- }
+ retention = int.Parse(settingRepository.GetSettingValue(settings, "VisitorRetention", "30")); // 30 day default
try
{
count = visitorRepository.DeleteVisitors(site.SiteId, retention);
@@ -82,11 +73,7 @@ namespace Oqtane.Infrastructure
}
// purge notifications
- retention = 30; // 30 days
- if (settings.ContainsKey("NotificationRetention") && !string.IsNullOrEmpty(settings["NotificationRetention"]))
- {
- retention = int.Parse(settings["NotificationRetention"]);
- }
+ retention = int.Parse(settingRepository.GetSettingValue(settings, "NotificationRetention", "30")); // 30 day default
try
{
count = notificationRepository.DeleteNotifications(site.SiteId, retention);
@@ -98,11 +85,7 @@ namespace Oqtane.Infrastructure
}
// purge broken urls
- retention = 30; // 30 days
- if (settings.ContainsKey("UrlMappingRetention") && !string.IsNullOrEmpty(settings["UrlMappingRetention"]))
- {
- retention = int.Parse(settings["UrlMappingRetention"]);
- }
+ retention = int.Parse(settingRepository.GetSettingValue(settings, "UrlMappingRetention", "30")); // 30 day default
try
{
count = urlMappingRepository.DeleteUrlMappings(site.SiteId, retention);
@@ -127,15 +110,5 @@ namespace Oqtane.Infrastructure
return log;
}
-
- private Dictionary GetSettings(List settings)
- {
- Dictionary dictionary = new Dictionary();
- foreach (Setting setting in settings.OrderBy(item => item.SettingName).ToList())
- {
- dictionary.Add(setting.SettingName, setting.SettingValue);
- }
- return dictionary;
- }
}
}
diff --git a/Oqtane.Server/Repository/Interfaces/ISettingRepository.cs b/Oqtane.Server/Repository/Interfaces/ISettingRepository.cs
index 3708d4cd..e74e8eda 100644
--- a/Oqtane.Server/Repository/Interfaces/ISettingRepository.cs
+++ b/Oqtane.Server/Repository/Interfaces/ISettingRepository.cs
@@ -15,6 +15,6 @@ namespace Oqtane.Repository
Setting GetSetting(string entityName, int entityId, string settingName);
void DeleteSetting(string entityName, int settingId);
void DeleteSettings(string entityName, int entityId);
- string GetSettingValue(List settings, string settingName, string defaultValue);
+ string GetSettingValue(IEnumerable settings, string settingName, string defaultValue);
}
}
diff --git a/Oqtane.Server/Repository/SettingRepository.cs b/Oqtane.Server/Repository/SettingRepository.cs
index be40938b..735ec981 100644
--- a/Oqtane.Server/Repository/SettingRepository.cs
+++ b/Oqtane.Server/Repository/SettingRepository.cs
@@ -167,7 +167,7 @@ namespace Oqtane.Repository
ManageCache(entityName);
}
- public string GetSettingValue(List settings, string settingName, string defaultValue)
+ public string GetSettingValue(IEnumerable settings, string settingName, string defaultValue)
{
var setting = settings.FirstOrDefault(item => item.SettingName == settingName);
if (setting != null)