Consume ticket overview capabilities separately
This commit is contained in:
@@ -1147,7 +1147,7 @@ namespace C4IT.FASD.Cockpit.Communication
|
||||
|
||||
#region Ticketübersicht
|
||||
|
||||
public override async Task<Dictionary<string, int>> GetTicketOverviewCounts(IEnumerable<string> keys, bool useRoleScope)
|
||||
public override async Task<cF4sdTicketOverviewCountsResult> GetTicketOverviewCounts(IEnumerable<string> keys, bool useRoleScope)
|
||||
{
|
||||
var CM = MethodBase.GetCurrentMethod();
|
||||
LogMethodBegin(CM);
|
||||
@@ -1182,13 +1182,13 @@ namespace C4IT.FASD.Cockpit.Communication
|
||||
await CheckConnectionStatus.Invoke();
|
||||
|
||||
LogEntry($"Error on requesting ticket overview counts ({scope}). Status: {result.Status}", LogLevels.Warning);
|
||||
return new Dictionary<string, int>(StringComparer.OrdinalIgnoreCase);
|
||||
return new cF4sdTicketOverviewCountsResult();
|
||||
}
|
||||
|
||||
if (Debug_apiValues) SaveApiResultValueJson("TicketOverview.GetCounts", result.Result, url);
|
||||
|
||||
var response = JsonConvert.DeserializeObject<TicketOverviewCountsResponse>(result.Result);
|
||||
return response?.ToDictionary(normalizedKeys) ?? new Dictionary<string, int>(StringComparer.OrdinalIgnoreCase);
|
||||
return response?.ToResult(normalizedKeys) ?? new cF4sdTicketOverviewCountsResult();
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
@@ -1204,7 +1204,7 @@ namespace C4IT.FASD.Cockpit.Communication
|
||||
LogMethodEnd(CM);
|
||||
}
|
||||
|
||||
return new Dictionary<string, int>(StringComparer.OrdinalIgnoreCase);
|
||||
return new cF4sdTicketOverviewCountsResult();
|
||||
}
|
||||
|
||||
public override async Task<List<cF4sdApiSearchResultRelation>> GetTicketOverviewRelations(string key, bool useRoleScope, int count)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
using C4IT.FASD.Cockpit.Communication;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace FasdCockpitCommunication.TicketOverview
|
||||
@@ -10,7 +11,10 @@ namespace FasdCockpitCommunication.TicketOverview
|
||||
[JsonProperty("counts")]
|
||||
public Dictionary<string, int> Counts { get; set; } = new Dictionary<string, int>(StringComparer.OrdinalIgnoreCase);
|
||||
|
||||
public Dictionary<string, int> ToDictionary(IEnumerable<string> expectedKeys)
|
||||
[JsonProperty("capabilities")]
|
||||
public TicketOverviewCapabilitiesResponse Capabilities { get; set; } = new TicketOverviewCapabilitiesResponse();
|
||||
|
||||
public cF4sdTicketOverviewCountsResult ToResult(IEnumerable<string> expectedKeys)
|
||||
{
|
||||
var comparer = StringComparer.OrdinalIgnoreCase;
|
||||
var output = new Dictionary<string, int>(comparer);
|
||||
@@ -28,7 +32,7 @@ namespace FasdCockpitCommunication.TicketOverview
|
||||
output[key] = 0;
|
||||
}
|
||||
|
||||
return output;
|
||||
return CreateResult(output);
|
||||
}
|
||||
|
||||
if (Counts != null)
|
||||
@@ -42,7 +46,25 @@ namespace FasdCockpitCommunication.TicketOverview
|
||||
}
|
||||
}
|
||||
|
||||
return output;
|
||||
return CreateResult(output);
|
||||
}
|
||||
|
||||
private cF4sdTicketOverviewCountsResult CreateResult(Dictionary<string, int> counts)
|
||||
{
|
||||
return new cF4sdTicketOverviewCountsResult
|
||||
{
|
||||
Counts = counts,
|
||||
Capabilities = new cF4sdTicketOverviewCapabilities
|
||||
{
|
||||
TicketAndServiceRequestsEnabled = Capabilities?.TicketAndServiceRequestsEnabled ?? true
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
internal sealed class TicketOverviewCapabilitiesResponse
|
||||
{
|
||||
[JsonProperty("ticketAndServiceRequestsEnabled")]
|
||||
public bool TicketAndServiceRequestsEnabled { get; set; } = true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user