70 lines
2.3 KiB
C#
70 lines
2.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
using C4IT.FASD.Cockpit.Communication;
|
|
#if isDemo
|
|
using FasdCockpitCommunicationDemo;
|
|
#endif
|
|
|
|
namespace FasdDesktopUi.Basics.Services.Models
|
|
{
|
|
internal interface ITicketOverviewCommunication
|
|
{
|
|
bool IsDemo();
|
|
|
|
Task<cF4sdTicketOverviewCountsResult> GetTicketOverviewCounts(string[] overviewKeys, bool useRoleScope);
|
|
|
|
#if isDemo
|
|
void RegisterGeneratedTicket(DemoTicketRecord record);
|
|
#endif
|
|
}
|
|
|
|
internal interface ITicketOverviewCommunicationSource
|
|
{
|
|
ITicketOverviewCommunication Resolve();
|
|
}
|
|
|
|
internal sealed class TicketOverviewCommunicationSource : ITicketOverviewCommunicationSource
|
|
{
|
|
public ITicketOverviewCommunication Resolve()
|
|
{
|
|
var communication = cFasdCockpitCommunicationBase.Instance;
|
|
return communication == null ? null : new TicketOverviewCommunicationAdapter(communication);
|
|
}
|
|
}
|
|
|
|
internal sealed class TicketOverviewCommunicationAdapter : ITicketOverviewCommunication
|
|
{
|
|
private readonly cFasdCockpitCommunicationBase _communication;
|
|
|
|
internal TicketOverviewCommunicationAdapter(cFasdCockpitCommunicationBase communication)
|
|
{
|
|
_communication = communication ?? throw new ArgumentNullException(nameof(communication));
|
|
}
|
|
|
|
public bool IsDemo()
|
|
{
|
|
return _communication.IsDemo();
|
|
}
|
|
|
|
public async Task<cF4sdTicketOverviewCountsResult> GetTicketOverviewCounts(string[] overviewKeys, bool useRoleScope)
|
|
{
|
|
var result = await _communication.GetTicketOverviewCounts(overviewKeys, useRoleScope).ConfigureAwait(false)
|
|
?? new cF4sdTicketOverviewCountsResult();
|
|
result.Counts = result.Counts == null
|
|
? new Dictionary<string, int>(StringComparer.OrdinalIgnoreCase)
|
|
: new Dictionary<string, int>(result.Counts, StringComparer.OrdinalIgnoreCase);
|
|
result.Capabilities = result.Capabilities ?? new cF4sdTicketOverviewCapabilities();
|
|
return result;
|
|
}
|
|
|
|
#if isDemo
|
|
public void RegisterGeneratedTicket(DemoTicketRecord record)
|
|
{
|
|
var demoCommunication = _communication as cFasdCockpitCommunicationDemo;
|
|
demoCommunication?.RegisterGeneratedTicket(record);
|
|
}
|
|
#endif
|
|
}
|
|
}
|