diff --git a/C4IT_DataHistoryProvider_Base/Publish/F4SD-Cockpit-Server.dll b/C4IT_DataHistoryProvider_Base/Publish/F4SD-Cockpit-Server.dll index 3578b7d..e5c117a 100644 Binary files a/C4IT_DataHistoryProvider_Base/Publish/F4SD-Cockpit-Server.dll and b/C4IT_DataHistoryProvider_Base/Publish/F4SD-Cockpit-Server.dll differ diff --git a/F4SD-Cockpit-ServerCore/DataHistoryCollectorM42Wpm.cs b/F4SD-Cockpit-ServerCore/DataHistoryCollectorM42Wpm.cs index ffb05a5..46a7872 100644 --- a/F4SD-Cockpit-ServerCore/DataHistoryCollectorM42Wpm.cs +++ b/F4SD-Cockpit-ServerCore/DataHistoryCollectorM42Wpm.cs @@ -112,9 +112,11 @@ namespace C4IT.DataHistoryProvider private class GlobalServerSettings { internal DateTime LastRead = DateTime.MinValue; - internal bool TicketAndServiceRequestEnabled = false; + internal bool TicketAndServiceRequestEnabled = true; } + public bool TicketAndServiceRequestsEnabled => _globalServerSettings?.TicketAndServiceRequestEnabled ?? true; + private static class _OnlineCheckCriticalSection { public static SemaphoreSlim Semaphore = new SemaphoreSlim(1, 1); @@ -1167,6 +1169,21 @@ namespace C4IT.DataHistoryProvider if (!string.IsNullOrWhiteSpace(json)) { var root = JsonConvert.DeserializeObject(json); + var ticketCapability = root?["capabilities"]?["ticketAndServiceRequestsEnabled"]; + if (ticketCapability != null && ticketCapability.Type != JTokenType.Null) + { + if (ticketCapability.Type == JTokenType.Boolean) + { + _globalServerSettings.TicketAndServiceRequestEnabled = ticketCapability.Value(); + _globalServerSettings.LastRead = DateTime.UtcNow; + } + else if (bool.TryParse(ticketCapability.ToString(), out var isEnabled)) + { + _globalServerSettings.TicketAndServiceRequestEnabled = isEnabled; + _globalServerSettings.LastRead = DateTime.UtcNow; + } + } + var countsToken = root?["counts"] as JObject; var counts = new Dictionary(StringComparer.OrdinalIgnoreCase); if (countsToken != null) diff --git a/F4SD-Cockpit-ServerCore/Publish/F4SD-Cockpit-ServerCore.dll b/F4SD-Cockpit-ServerCore/Publish/F4SD-Cockpit-ServerCore.dll index e85dbef..e2b2b69 100644 Binary files a/F4SD-Cockpit-ServerCore/Publish/F4SD-Cockpit-ServerCore.dll and b/F4SD-Cockpit-ServerCore/Publish/F4SD-Cockpit-ServerCore.dll differ diff --git a/F4SDwebService/Controllers/TicketOverviewController.cs b/F4SDwebService/Controllers/TicketOverviewController.cs index 2442560..8ea78b4 100644 --- a/F4SDwebService/Controllers/TicketOverviewController.cs +++ b/F4SDwebService/Controllers/TicketOverviewController.cs @@ -54,7 +54,14 @@ namespace FasdWebService.Controllers .ToList(); var counts = await collector.GetTicketOverviewCountsAsync(normalizedKeys, useRoleScope, requestInfo, 1, CancellationToken.None); - return Ok(new TicketOverviewCountsResult { Counts = counts }); + return Ok(new TicketOverviewCountsResult + { + Counts = counts, + Capabilities = new TicketOverviewCapabilities + { + TicketAndServiceRequestsEnabled = collector.TicketAndServiceRequestsEnabled + } + }); } catch (Exception E) { @@ -118,5 +125,14 @@ namespace FasdWebService.Controllers { [JsonProperty("counts")] public Dictionary Counts { get; set; } = new Dictionary(StringComparer.OrdinalIgnoreCase); + + [JsonProperty("capabilities")] + public TicketOverviewCapabilities Capabilities { get; set; } = new TicketOverviewCapabilities(); + } + + public class TicketOverviewCapabilities + { + [JsonProperty("ticketAndServiceRequestsEnabled")] + public bool TicketAndServiceRequestsEnabled { get; set; } = true; } }