diff --git a/F4SDM42WebApi/F4SD - M42WebApi.csproj b/F4SDM42WebApi/F4SD - M42WebApi.csproj
index 460d860..42bde02 100644
--- a/F4SDM42WebApi/F4SD - M42WebApi.csproj
+++ b/F4SDM42WebApi/F4SD - M42WebApi.csproj
@@ -13,7 +13,7 @@
false
6673a25d-33d6-4072-91d9-abed4be1a966
C4ITF4SD*.*
- 1.4.0.12
+ 1.4.0.13
true
diff --git a/F4SDM42WebApi/F4SDHelperService.cs b/F4SDM42WebApi/F4SDHelperService.cs
index 1807523..a68fa60 100644
--- a/F4SDM42WebApi/F4SDHelperService.cs
+++ b/F4SDM42WebApi/F4SDHelperService.cs
@@ -52,6 +52,7 @@ namespace C4IT.F4SD
private const string placeHolderSubject = "PARAM_SUBJECT";
private const string placeHolderDescription = "PARAM_DESCRIPTION";
+ private static bool? ticketAndServiceRequestEnabledCache;
private const string c4itf4sdmonLinkBase = "f4sdsend://localhost";
private const string F4SDTicketTableName = "M42WPM-TICKETS-INFOS";
@@ -1685,18 +1686,23 @@ namespace C4IT.F4SD
private static bool ticketAndServiceRequestEnabled()
{
- var configProvider = F4SDM42WebApiController.defaultInstance._globalConfigurationProvider;
+ if (ticketAndServiceRequestEnabledCache.HasValue)
+ return ticketAndServiceRequestEnabledCache.Value;
- // using reflection because signature of "ReloadSettings" changed in ESM v12
- var method = configProvider.GetType().GetMethod("ReloadSettings");
-
- if (method != null)
+ try
{
- var defaultParameters = method.GetParameters().Select(p => p.HasDefaultValue ? p.DefaultValue : null).ToArray();
- method.Invoke(configProvider, defaultParameters);
+ var configProvider = F4SDM42WebApiController.defaultInstance?._globalConfigurationProvider;
+ var enabled = configProvider?.ServiceDeskConfiguration?.TicketAndServiceRequestEnabled ?? true;
+ ticketAndServiceRequestEnabledCache = enabled;
+ return enabled;
+ }
+ catch (Exception E)
+ {
+ LogException(E);
+ LogEntry("Could not read ServiceDeskConfiguration.TicketAndServiceRequestEnabled. Falling back to enabled ticket/service request mode.", LogLevels.Warning);
+ ticketAndServiceRequestEnabledCache = true;
+ return true;
}
-
- return configProvider.ServiceDeskConfiguration.TicketAndServiceRequestEnabled;
}
internal async Task> getTicketDetails(List ticketObjectIds)