fix: avoid service desk configuration reload

This commit is contained in:
Meik
2026-06-30 12:58:44 +02:00
parent 4e52cef734
commit dcafcb8847
2 changed files with 16 additions and 10 deletions

View File

@@ -13,7 +13,7 @@
<EnableDefaultCompileItems>false</EnableDefaultCompileItems>
<M42ExtensionId>6673a25d-33d6-4072-91d9-abed4be1a966</M42ExtensionId>
<M42AssemblyPattern>C4ITF4SD*.*</M42AssemblyPattern>
<M42PackageVersion>1.4.0.12</M42PackageVersion>
<M42PackageVersion>1.4.0.13</M42PackageVersion>
<M42BuildPackage>true</M42BuildPackage>
</PropertyGroup>

View File

@@ -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<List<cF4SDTicket>> getTicketDetails(List<Guid> ticketObjectIds)