Forward ticket overview capabilities separately

This commit is contained in:
Meik
2026-07-20 09:41:33 +02:00
parent ccc48c521a
commit 1425af3cbe
4 changed files with 35 additions and 2 deletions

View File

@@ -112,9 +112,11 @@ namespace C4IT.DataHistoryProvider
private class GlobalServerSettings private class GlobalServerSettings
{ {
internal DateTime LastRead = DateTime.MinValue; internal DateTime LastRead = DateTime.MinValue;
internal bool TicketAndServiceRequestEnabled = false; internal bool TicketAndServiceRequestEnabled = true;
} }
public bool TicketAndServiceRequestsEnabled => _globalServerSettings?.TicketAndServiceRequestEnabled ?? true;
private static class _OnlineCheckCriticalSection private static class _OnlineCheckCriticalSection
{ {
public static SemaphoreSlim Semaphore = new SemaphoreSlim(1, 1); public static SemaphoreSlim Semaphore = new SemaphoreSlim(1, 1);
@@ -1167,6 +1169,21 @@ namespace C4IT.DataHistoryProvider
if (!string.IsNullOrWhiteSpace(json)) if (!string.IsNullOrWhiteSpace(json))
{ {
var root = JsonConvert.DeserializeObject<JObject>(json); var root = JsonConvert.DeserializeObject<JObject>(json);
var ticketCapability = root?["capabilities"]?["ticketAndServiceRequestsEnabled"];
if (ticketCapability != null && ticketCapability.Type != JTokenType.Null)
{
if (ticketCapability.Type == JTokenType.Boolean)
{
_globalServerSettings.TicketAndServiceRequestEnabled = ticketCapability.Value<bool>();
_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 countsToken = root?["counts"] as JObject;
var counts = new Dictionary<string, int>(StringComparer.OrdinalIgnoreCase); var counts = new Dictionary<string, int>(StringComparer.OrdinalIgnoreCase);
if (countsToken != null) if (countsToken != null)

View File

@@ -54,7 +54,14 @@ namespace FasdWebService.Controllers
.ToList(); .ToList();
var counts = await collector.GetTicketOverviewCountsAsync(normalizedKeys, useRoleScope, requestInfo, 1, CancellationToken.None); 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) catch (Exception E)
{ {
@@ -118,5 +125,14 @@ namespace FasdWebService.Controllers
{ {
[JsonProperty("counts")] [JsonProperty("counts")]
public Dictionary<string, int> Counts { get; set; } = new Dictionary<string, int>(StringComparer.OrdinalIgnoreCase); public Dictionary<string, int> Counts { get; set; } = new Dictionary<string, int>(StringComparer.OrdinalIgnoreCase);
[JsonProperty("capabilities")]
public TicketOverviewCapabilities Capabilities { get; set; } = new TicketOverviewCapabilities();
}
public class TicketOverviewCapabilities
{
[JsonProperty("ticketAndServiceRequestsEnabled")]
public bool TicketAndServiceRequestsEnabled { get; set; } = true;
} }
} }