diff
This commit is contained in:
@@ -47,7 +47,7 @@ namespace C4IT.FASD.Cockpit.Communication
|
|||||||
public abstract Task<bool> KeepAliveSession(Guid sessionId);
|
public abstract Task<bool> KeepAliveSession(Guid sessionId);
|
||||||
|
|
||||||
public abstract Task<bool> ReportQuickAction(cF4SDQuickActionParameters quickActionParameters);
|
public abstract Task<bool> ReportQuickAction(cF4SDQuickActionParameters quickActionParameters);
|
||||||
|
public abstract Task<cCollectorStatusInfo> CheckCollectorStatusAsync();
|
||||||
public static bool Debug_apiValues = false;
|
public static bool Debug_apiValues = false;
|
||||||
public static bool Debug_apiTiming = false;
|
public static bool Debug_apiTiming = false;
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ using Newtonsoft.Json.Linq;
|
|||||||
|
|
||||||
using static C4IT.Logging.cLogManager;
|
using static C4IT.Logging.cLogManager;
|
||||||
using C4IT.Configuration;
|
using C4IT.Configuration;
|
||||||
|
using System.Runtime.InteropServices.WindowsRuntime;
|
||||||
|
|
||||||
namespace C4IT.FASD.Cockpit.Communication
|
namespace C4IT.FASD.Cockpit.Communication
|
||||||
{
|
{
|
||||||
@@ -566,6 +567,38 @@ namespace C4IT.FASD.Cockpit.Communication
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override async Task<cCollectorStatusInfo> CheckCollectorStatusAsync()
|
||||||
|
{
|
||||||
|
var CM = MethodBase.GetCurrentMethod();
|
||||||
|
LogMethodBegin(CM);
|
||||||
|
var apiError = 0;
|
||||||
|
var timeStart = DateTime.UtcNow;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var http = GetHttpHelper(false);
|
||||||
|
|
||||||
|
var result = await http.GetHttpJson("api/CheckCollectorStatus", 15000, CancellationToken.None);
|
||||||
|
|
||||||
|
if (!result.IsOk)
|
||||||
|
{
|
||||||
|
apiError = (int)result.Status;
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
var strXml = JsonConvert.DeserializeObject<cCollectorStatusInfo>(result.Result);
|
||||||
|
return strXml;
|
||||||
|
}
|
||||||
|
catch (Exception E)
|
||||||
|
{
|
||||||
|
apiError = E.HResult;
|
||||||
|
LogException(E);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
if (Debug_apiTiming) SaveApiTimingEntry("Check Collector Status", timeStart, apiError);
|
||||||
|
LogMethodEnd(CM);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
public override async Task<cFasdBaseConfig> GetConfiguration(enumFasdConfigurationType configType)
|
public override async Task<cFasdBaseConfig> GetConfiguration(enumFasdConfigurationType configType)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1862,5 +1862,9 @@ namespace C4IT.FASD.Cockpit.Communication
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override Task<cCollectorStatusInfo> CheckCollectorStatusAsync()
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,472 @@
|
|||||||
|
{
|
||||||
|
"TicketsNew": {
|
||||||
|
"Personal": [
|
||||||
|
{
|
||||||
|
"TicketId": "2e9cb83d-ecb7-c93b-e8e4-08daaa97265f",
|
||||||
|
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
||||||
|
"DisplayName": "TCK00186",
|
||||||
|
"Summary": "Mein OneDrive synchronisiert nicht mehr",
|
||||||
|
"UserDisplayName": "Ticket, Timo",
|
||||||
|
"UserAccount": "TT007",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "New"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Role": [
|
||||||
|
{
|
||||||
|
"TicketId": "bb2e4a9d-2c1e-4b32-8f75-6e7c9f99f2d4",
|
||||||
|
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
||||||
|
"DisplayName": "TCK00761",
|
||||||
|
"Summary": "VPN-Verbindung bricht nach wenigen Minuten ab",
|
||||||
|
"UserDisplayName": "Ticket, Timo",
|
||||||
|
"UserAccount": "TT007",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "New"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TicketId": "d63e5ea1-0785-4998-82ad-9a9e5a0f8c37",
|
||||||
|
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
||||||
|
"DisplayName": "TCK00765",
|
||||||
|
"Summary": "Teams-Benachrichtigungen kommen verzögert an",
|
||||||
|
"UserDisplayName": "Ticket, Timo",
|
||||||
|
"UserAccount": "TT007",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "New"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TicketId": "f7771fde-33ba-421a-8d9b-cdf468e7541c",
|
||||||
|
"UserId": "a2164ecd-791f-482c-bea3-f089f14bec8a",
|
||||||
|
"DisplayName": "TCK00403",
|
||||||
|
"Summary": "Neuer Monitor fuer Hotline Arbeitsplatz",
|
||||||
|
"UserDisplayName": "Busch, Andrea",
|
||||||
|
"UserAccount": "AB014",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "New"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TicketId": "6294eec7-fb80-42f3-8ce8-7f7982ae200c",
|
||||||
|
"UserId": "436e8d67-1b9b-4b1a-83e9-0b1e8fa0173b",
|
||||||
|
"DisplayName": "TCK00404",
|
||||||
|
"Summary": "Monitor flackert seit Firmware Update",
|
||||||
|
"UserDisplayName": "Anwender, Peter",
|
||||||
|
"UserAccount": "PA010",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "New"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"TicketsActive": {
|
||||||
|
"Personal": [
|
||||||
|
{
|
||||||
|
"TicketId": "75e08a29-4103-41d6-962c-009c3342bc46",
|
||||||
|
"UserId": "6180aa17-ba2d-455a-bf2f-ec4a075c2d64",
|
||||||
|
"DisplayName": "TCK00406",
|
||||||
|
"Summary": "CAD Software startet nach Update nicht mehr",
|
||||||
|
"UserDisplayName": "Kohl, Carlos",
|
||||||
|
"UserAccount": "CK102",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "InProgress"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Role": [
|
||||||
|
{
|
||||||
|
"TicketId": "2e9cb83d-ecb7-c93b-e8e4-08daaa97265f",
|
||||||
|
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
||||||
|
"DisplayName": "TCK00405",
|
||||||
|
"Summary": "OneDrive Synchronisation bleibt haengen",
|
||||||
|
"UserDisplayName": "Ticket, Timo",
|
||||||
|
"UserAccount": "TT007",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "InProgress"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TicketId": "ff62a3e2-5004-4a8c-b71c-7ebb1877d1a4",
|
||||||
|
"UserId": "0fad5e21-5a29-44c6-b532-46f862ea8694",
|
||||||
|
"DisplayName": "TCK00407",
|
||||||
|
"Summary": "Netzlaufwerk Projekt X nicht erreichbar",
|
||||||
|
"UserDisplayName": "Hanova, Hans",
|
||||||
|
"UserAccount": "HH101",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "InProgress"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"TicketsCritical": {
|
||||||
|
"Personal": [
|
||||||
|
{
|
||||||
|
"TicketId": "1507691c-6d47-4ae3-83b3-ef483d84a246",
|
||||||
|
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
||||||
|
"DisplayName": "TCK00408",
|
||||||
|
"Summary": "VPN Konzentrator in Aussenstelle offline",
|
||||||
|
"UserDisplayName": "Seifert, Dominik",
|
||||||
|
"UserAccount": "DS014",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "InProgress"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TicketId": "5c6d981e-9e67-4fde-b249-8c6288d325a7",
|
||||||
|
"UserId": "a2164ecd-791f-482c-bea3-f089f14bec8a",
|
||||||
|
"DisplayName": "TCK00409",
|
||||||
|
"Summary": "SAP Produktionsauftrag bricht ab",
|
||||||
|
"UserDisplayName": "Boss, Bernd",
|
||||||
|
"UserAccount": "BB003",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "InProgress"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Role": [
|
||||||
|
{
|
||||||
|
"TicketId": "1507691c-6d47-4ae3-83b3-ef483d84a246",
|
||||||
|
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
||||||
|
"DisplayName": "TCK00408",
|
||||||
|
"Summary": "VPN Konzentrator in Aussenstelle offline",
|
||||||
|
"UserDisplayName": "Seifert, Dominik",
|
||||||
|
"UserAccount": "DS014",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "InProgress"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TicketId": "9b7710d4-72da-4b2a-9d0c-be02575d2c52",
|
||||||
|
"UserId": "a2c35ad1-7cc7-4b2b-9aa5-d03fdaecd155",
|
||||||
|
"DisplayName": "TCK00410",
|
||||||
|
"Summary": "WLAN im Lager faellt minutenweise aus",
|
||||||
|
"UserDisplayName": "Kiefer, Maximilian",
|
||||||
|
"UserAccount": "MK009",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "InProgress"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TicketId": "5c6d981e-9e67-4fde-b249-8c6288d325a7",
|
||||||
|
"UserId": "a2164ecd-791f-482c-bea3-f089f14bec8a",
|
||||||
|
"DisplayName": "TCK00409",
|
||||||
|
"Summary": "SAP Produktionsauftrag bricht ab",
|
||||||
|
"UserDisplayName": "Boss, Bernd",
|
||||||
|
"UserAccount": "BB003",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "InProgress"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"TicketsNewInfo": {
|
||||||
|
"Personal": [
|
||||||
|
{
|
||||||
|
"TicketId": "de403992-98cb-4476-9e04-d645ab22e6de",
|
||||||
|
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
||||||
|
"DisplayName": "TCK00411",
|
||||||
|
"Summary": "Rueckfrage zur Passwort Ruecksetzung beantworten",
|
||||||
|
"UserDisplayName": "Ticket, Timo",
|
||||||
|
"UserAccount": "TT007",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "OnHold"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TicketId": "7c29dd33-1247-453c-9db6-f7a59107d276",
|
||||||
|
"UserId": "436e8d67-1b9b-4b1a-83e9-0b1e8fa0173b",
|
||||||
|
"DisplayName": "TCK00412",
|
||||||
|
"Summary": "Techniker bittet um Rueckmeldung zum Notebook",
|
||||||
|
"UserDisplayName": "Anwender, Peter",
|
||||||
|
"UserAccount": "PA010",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "OnHold"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Role": [
|
||||||
|
{
|
||||||
|
"TicketId": "de403992-98cb-4476-9e04-d645ab22e6de",
|
||||||
|
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
||||||
|
"DisplayName": "TCK00411",
|
||||||
|
"Summary": "Rueckfrage zur Passwort Ruecksetzung beantworten",
|
||||||
|
"UserDisplayName": "Ticket, Timo",
|
||||||
|
"UserAccount": "TT007",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "OnHold"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TicketId": "b207822d-7e1c-42a7-b8c9-4246f711dd18",
|
||||||
|
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
||||||
|
"DisplayName": "TCK00413",
|
||||||
|
"Summary": "Wartungsfenster fuer Firewall verschieben",
|
||||||
|
"UserDisplayName": "Seifert, Dominik",
|
||||||
|
"UserAccount": "DS014",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "OnHold"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"IncidentNew": {
|
||||||
|
"Personal": [
|
||||||
|
{
|
||||||
|
"TicketId": "e0ba7c81-f9b1-4e99-a4d6-efecc5e4312e",
|
||||||
|
"UserId": "f69dd1a9-591f-4004-b950-264238663bf0",
|
||||||
|
"DisplayName": "INC00401",
|
||||||
|
"Summary": "Teams Telefonie ist fuer Standort Sued offline",
|
||||||
|
"UserDisplayName": "Ottmann, Thomas",
|
||||||
|
"UserAccount": "TO011",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "New"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TicketId": "a8deb50d-9f15-4371-9ebc-a28791f27d5c",
|
||||||
|
"UserId": "76f86d28-862c-4fa2-9062-8367be7fbd92",
|
||||||
|
"DisplayName": "INC00402",
|
||||||
|
"Summary": "SharePoint Bereich Vertrieb laedt extrem langsam",
|
||||||
|
"UserDisplayName": "Virtual, Vera",
|
||||||
|
"UserAccount": "VV004",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "New"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Role": [
|
||||||
|
{
|
||||||
|
"TicketId": "fe15284f-f553-4434-8b59-7d8b9f481bf7",
|
||||||
|
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
||||||
|
"DisplayName": "INC00403",
|
||||||
|
"Summary": "Firewall Cluster meldet Sync Fehler",
|
||||||
|
"UserDisplayName": "Seifert, Dominik",
|
||||||
|
"UserAccount": "DS014",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "New"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TicketId": "9cdddacf-9395-476b-811a-09c5f1491d4b",
|
||||||
|
"UserId": "436e8d67-1b9b-4b1a-83e9-0b1e8fa0173b",
|
||||||
|
"DisplayName": "INC00404",
|
||||||
|
"Summary": "CRM Anmeldung liefert Timeout fuer Kundencenter",
|
||||||
|
"UserDisplayName": "Anwender, Peter",
|
||||||
|
"UserAccount": "PA010",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "New"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"IncidentActive": {
|
||||||
|
"Personal": [
|
||||||
|
{
|
||||||
|
"TicketId": "7e852bb9-420b-4caa-b79a-9178d793fc06",
|
||||||
|
"UserId": "a2c35ad1-7cc7-4b2b-9aa5-d03fdaecd155",
|
||||||
|
"DisplayName": "INC00405",
|
||||||
|
"Summary": "Windows Rollout haengt auf mehreren Clients",
|
||||||
|
"UserDisplayName": "Kiefer, Maximilian",
|
||||||
|
"UserAccount": "MK009",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "InProgress"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TicketId": "3c3c70cf-5c60-4ecc-9313-b5f9c1968fc7",
|
||||||
|
"UserId": "a2164ecd-791f-482c-bea3-f089f14bec8a",
|
||||||
|
"DisplayName": "INC00406",
|
||||||
|
"Summary": "Remotedesktop Sitzung trennt nach wenigen Minuten",
|
||||||
|
"UserDisplayName": "Busch, Andrea",
|
||||||
|
"UserAccount": "AB014",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "InProgress"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Role": [
|
||||||
|
{
|
||||||
|
"TicketId": "486df93d-15b6-41d4-b902-2c1e1838c74b",
|
||||||
|
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
||||||
|
"DisplayName": "INC00407",
|
||||||
|
"Summary": "Firewall Cluster meldet weiterhin Sync Fehler",
|
||||||
|
"UserDisplayName": "Seifert, Dominik",
|
||||||
|
"UserAccount": "DS014",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "InProgress"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TicketId": "86da28b0-013b-4542-bcff-175044d5bb02",
|
||||||
|
"UserId": "a2164ecd-791f-482c-bea3-f089f14bec8a",
|
||||||
|
"DisplayName": "INC00408",
|
||||||
|
"Summary": "Produktionslinie meldet keine Sensordaten",
|
||||||
|
"UserDisplayName": "Zufall, Rainer",
|
||||||
|
"UserAccount": "RZ011",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "InProgress"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TicketId": "a1cf6635-a5c4-4401-b4f0-60b9c65b4d75",
|
||||||
|
"UserId": "0fad5e21-5a29-44c6-b532-46f862ea8694",
|
||||||
|
"DisplayName": "INC00409",
|
||||||
|
"Summary": "Exchange Transportdienst setzt Mails in Warteschlange",
|
||||||
|
"UserDisplayName": "Hanova, Hans",
|
||||||
|
"UserAccount": "HH101",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "InProgress"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"IncidentCritical": {
|
||||||
|
"Personal": [
|
||||||
|
{
|
||||||
|
"TicketId": "9aae7eca-39d7-441e-8b33-5fc6f34765c8",
|
||||||
|
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
||||||
|
"DisplayName": "INC00410",
|
||||||
|
"Summary": "Kuehlung im Rechenzentrum U3 ausgefallen",
|
||||||
|
"UserDisplayName": "Seifert, Dominik",
|
||||||
|
"UserAccount": "DS014",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "InProgress"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Role": [
|
||||||
|
{
|
||||||
|
"TicketId": "9aae7eca-39d7-441e-8b33-5fc6f34765c8",
|
||||||
|
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
||||||
|
"DisplayName": "INC00410",
|
||||||
|
"Summary": "Kuehlung im Rechenzentrum U3 ausgefallen",
|
||||||
|
"UserDisplayName": "Seifert, Dominik",
|
||||||
|
"UserAccount": "DS014",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "InProgress"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TicketId": "130ec52f-dac3-427d-803e-e7cf67e4a744",
|
||||||
|
"UserId": "f69dd1a9-591f-4004-b950-264238663bf0",
|
||||||
|
"DisplayName": "INC00411",
|
||||||
|
"Summary": "Kartenzahlung in den Filialen nicht moeglich",
|
||||||
|
"UserDisplayName": "Ottmann, Thomas",
|
||||||
|
"UserAccount": "TO011",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "InProgress"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TicketId": "b7d22b65-c11e-459c-ac31-5b1c08e4118d",
|
||||||
|
"UserId": "8c3ca0fb-f18c-4893-ad83-290e6e02f352",
|
||||||
|
"DisplayName": "INC00412",
|
||||||
|
"Summary": "Datenbank Cluster benoetigt manuellen Failover",
|
||||||
|
"UserDisplayName": "Perschmann, Paul",
|
||||||
|
"UserAccount": "PP201",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "InProgress"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"IncidentNewInfo": {
|
||||||
|
"Personal": [
|
||||||
|
{
|
||||||
|
"TicketId": "d1a2c544-4f59-4f2b-875f-3621a23d4228",
|
||||||
|
"UserId": "a2164ecd-791f-482c-bea3-f089f14bec8a",
|
||||||
|
"DisplayName": "INC00413",
|
||||||
|
"Summary": "Backup Team hat Rueckfrage zur Sicherung",
|
||||||
|
"UserDisplayName": "Busch, Andrea",
|
||||||
|
"UserAccount": "AB014",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "OnHold"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Role": [
|
||||||
|
{
|
||||||
|
"TicketId": "74846c1b-9a97-420f-8bf2-91e88aa0516a",
|
||||||
|
"UserId": "436e8d67-1b9b-4b1a-83e9-0b1e8fa0173b",
|
||||||
|
"DisplayName": "INC00415",
|
||||||
|
"Summary": "Lieferant bittet um Rueckmeldung zu Offsite Backup",
|
||||||
|
"UserDisplayName": "Anwender, Peter",
|
||||||
|
"UserAccount": "PA010",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "OnHold"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TicketId": "1372b3cf-5d87-4099-ab83-ec0cccf7194e",
|
||||||
|
"UserId": "a2164ecd-791f-482c-bea3-f089f14bec8a",
|
||||||
|
"DisplayName": "INC00416",
|
||||||
|
"Summary": "Fernwartung benoetigt Zugangsdaten zur SPS",
|
||||||
|
"UserDisplayName": "Zufall, Rainer",
|
||||||
|
"UserAccount": "RZ011",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "OnHold"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"UnassignedTickets": {
|
||||||
|
"Personal": [
|
||||||
|
{
|
||||||
|
"TicketId": "e2e49f85-1a81-47e8-935b-d76898c155f6",
|
||||||
|
"UserId": "76f86d28-862c-4fa2-9062-8367be7fbd92",
|
||||||
|
"DisplayName": "TCK00414",
|
||||||
|
"Summary": "Pool Notebook fuer Schulungsteilnehmer fehlt",
|
||||||
|
"UserDisplayName": "Virtual, Vera",
|
||||||
|
"UserAccount": "VV004",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "New"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TicketId": "ebe8818e-b197-411e-b56e-40b77b623ae2",
|
||||||
|
"UserId": "436e8d67-1b9b-4b1a-83e9-0b1e8fa0173b",
|
||||||
|
"DisplayName": "TCK00415",
|
||||||
|
"Summary": "Etikettendrucker im Lager meldet Papierstau",
|
||||||
|
"UserDisplayName": "Anwender, Peter",
|
||||||
|
"UserAccount": "PA010",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "New"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Role": [
|
||||||
|
{
|
||||||
|
"TicketId": "e2e49f85-1a81-47e8-935b-d76898c155f6",
|
||||||
|
"UserId": "76f86d28-862c-4fa2-9062-8367be7fbd92",
|
||||||
|
"DisplayName": "TCK00414",
|
||||||
|
"Summary": "Pool Notebook fuer Schulungsteilnehmer fehlt",
|
||||||
|
"UserDisplayName": "Virtual, Vera",
|
||||||
|
"UserAccount": "VV004",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "New"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TicketId": "ebe8818e-b197-411e-b56e-40b77b623ae2",
|
||||||
|
"UserId": "436e8d67-1b9b-4b1a-83e9-0b1e8fa0173b",
|
||||||
|
"DisplayName": "TCK00415",
|
||||||
|
"Summary": "Etikettendrucker im Lager meldet Papierstau",
|
||||||
|
"UserDisplayName": "Anwender, Peter",
|
||||||
|
"UserAccount": "PA010",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "New"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TicketId": "9e1d5d1b-5a22-430e-99ea-59840257caab",
|
||||||
|
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
||||||
|
"DisplayName": "TCK00416",
|
||||||
|
"Summary": "Ueberwachung meldet sporadische Alarme",
|
||||||
|
"UserDisplayName": "Seifert, Dominik",
|
||||||
|
"UserAccount": "DS014",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "New"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"UnassignedTicketsCritical": {
|
||||||
|
"Personal": [
|
||||||
|
{
|
||||||
|
"TicketId": "9e1d5d1b-5a22-430e-99ea-59840257caab",
|
||||||
|
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
||||||
|
"DisplayName": "TCK00416",
|
||||||
|
"Summary": "Ueberwachung meldet sporadische Alarme",
|
||||||
|
"UserDisplayName": "Seifert, Dominik",
|
||||||
|
"UserAccount": "DS014",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "InProgress"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Role": [
|
||||||
|
{
|
||||||
|
"TicketId": "9e1d5d1b-5a22-430e-99ea-59840257caab",
|
||||||
|
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
||||||
|
"DisplayName": "TCK00416",
|
||||||
|
"Summary": "Ueberwachung meldet sporadische Alarme",
|
||||||
|
"UserDisplayName": "Seifert, Dominik",
|
||||||
|
"UserAccount": "DS014",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "InProgress"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TicketId": "d427dc61-9842-4464-b37a-612878d3de0f",
|
||||||
|
"UserId": "a2164ecd-791f-482c-bea3-f089f14bec8a",
|
||||||
|
"DisplayName": "TCK00417",
|
||||||
|
"Summary": "Produktionsroboter steht nach Not Aus",
|
||||||
|
"UserDisplayName": "Boss, Bernd",
|
||||||
|
"UserAccount": "BB003",
|
||||||
|
"UserDomain": "CONTOSO",
|
||||||
|
"StatusId": "InProgress"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -48,7 +48,7 @@ namespace FasdCockpitCommunicationDemo
|
|||||||
public string Description { get; set; }
|
public string Description { get; set; }
|
||||||
public string DescriptionHtml { get; set; }
|
public string DescriptionHtml { get; set; }
|
||||||
public int Priority { get; set; }
|
public int Priority { get; set; }
|
||||||
public string Category { get; set; } //todo: replace with tree structure
|
public string Category { get; set; }
|
||||||
public string ActivityType { get; set; }
|
public string ActivityType { get; set; }
|
||||||
public string Solution { get; set; }
|
public string Solution { get; set; }
|
||||||
public string SolutionHtml { get; set; }
|
public string SolutionHtml { get; set; }
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
using System;
|
||||||
|
|
||||||
|
namespace FasdCockpitCommunicationDemo
|
||||||
|
{
|
||||||
|
public class TicketOverviewRelationDefinition
|
||||||
|
{
|
||||||
|
public Guid TicketId { get; set; }
|
||||||
|
public Guid UserId { get; set; }
|
||||||
|
public string DisplayName { get; set; }
|
||||||
|
public string Summary { get; set; }
|
||||||
|
public string StatusId { get; set; }
|
||||||
|
public string UserDisplayName { get; set; }
|
||||||
|
public string UserAccount { get; set; }
|
||||||
|
public string UserDomain { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -669,7 +669,7 @@ namespace FasdDesktopUi
|
|||||||
{
|
{
|
||||||
userInfo = cFasdCockpitCommunicationBase.CockpitUserInfo;
|
userInfo = cFasdCockpitCommunicationBase.CockpitUserInfo;
|
||||||
}
|
}
|
||||||
if (!string.IsNullOrEmpty(cCockpitConfiguration.Instance?.m42ServerConfiguration?.Server))
|
if (cFasdCockpitConfig.Instance.HasM42Configuration())
|
||||||
if (userInfo?.possibleLogons != null)
|
if (userInfo?.possibleLogons != null)
|
||||||
{
|
{
|
||||||
if (userInfo.possibleLogons.Contains(enumAdditionalAuthentication.M42WinLogon))
|
if (userInfo.possibleLogons.Contains(enumAdditionalAuthentication.M42WinLogon))
|
||||||
|
|||||||
@@ -110,6 +110,9 @@ namespace FasdDesktopUi.Basics.Services.SupportCase.Controllers
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
if (_focusedRelation == relation)
|
||||||
|
return;
|
||||||
|
|
||||||
_selectedHealthcard = _supportCaseProcessor.GetHealthcardFor(relation);
|
_selectedHealthcard = _supportCaseProcessor.GetHealthcardFor(relation);
|
||||||
HashSet<string> requiredTables = cHealthCard.GetRequiredTables(_selectedHealthcard);
|
HashSet<string> requiredTables = cHealthCard.GetRequiredTables(_selectedHealthcard);
|
||||||
_ = Task.Run(async () => await _supportCaseProcessor.LoadSupportCaseDataAsync(relation, requiredTables));
|
_ = Task.Run(async () => await _supportCaseProcessor.LoadSupportCaseDataAsync(relation, requiredTables));
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ namespace FasdDesktopUi.Basics.Services.SupportCase
|
|||||||
private readonly Dictionary<string, Dictionary<cF4sdApiSearchResultRelation, cF4SDHealthCardRawData.cHealthCardTable>> _supportCaseDataCache = new Dictionary<string, Dictionary<cF4sdApiSearchResultRelation, cF4SDHealthCardRawData.cHealthCardTable>>();
|
private readonly Dictionary<string, Dictionary<cF4sdApiSearchResultRelation, cF4SDHealthCardRawData.cHealthCardTable>> _supportCaseDataCache = new Dictionary<string, Dictionary<cF4sdApiSearchResultRelation, cF4SDHealthCardRawData.cHealthCardTable>>();
|
||||||
private readonly Dictionary<cF4sdApiSearchResultRelation, cF4SDHealthCardRawData> _rawDataCache = new Dictionary<cF4sdApiSearchResultRelation, cF4SDHealthCardRawData>(); // todo remove, currently only used for SupportCaseDataProviderArtifact
|
private readonly Dictionary<cF4sdApiSearchResultRelation, cF4SDHealthCardRawData> _rawDataCache = new Dictionary<cF4sdApiSearchResultRelation, cF4SDHealthCardRawData>(); // todo remove, currently only used for SupportCaseDataProviderArtifact
|
||||||
|
|
||||||
|
private readonly ICollection<cF4sdApiSearchResultRelation> _relationsCurrentlyLoadingData = new HashSet<cF4sdApiSearchResultRelation>();
|
||||||
|
|
||||||
internal readonly Guid Id;
|
internal readonly Guid Id;
|
||||||
private readonly IRelationService _relationService;
|
private readonly IRelationService _relationService;
|
||||||
public cSupportCaseDataProvider SupportCaseDataProviderArtifact { get; }
|
public cSupportCaseDataProvider SupportCaseDataProviderArtifact { get; }
|
||||||
@@ -67,14 +69,13 @@ namespace FasdDesktopUi.Basics.Services.SupportCase
|
|||||||
|
|
||||||
foreach (var relationType in relations)
|
foreach (var relationType in relations)
|
||||||
{
|
{
|
||||||
//TODO Max fragen obs passt! Bug: in den Ticketrelations (Header Ticketauswahl) sind nur zwei Tickets sichtbar anstatt 5 oder mehr..
|
|
||||||
if (_caseRelations.TryGetValue(relationType.Key, out var caseRelation))
|
if (_caseRelations.TryGetValue(relationType.Key, out var caseRelation))
|
||||||
_caseRelations[relationType.Key] = caseRelation.Union(relationType).ToList();
|
caseRelation = caseRelation.Union(relationType).ToList();
|
||||||
else
|
else
|
||||||
_caseRelations.Add(relationType.Key, relationType.ToList());
|
_caseRelations.Add(relationType.Key, relationType.ToList());
|
||||||
|
|
||||||
if (SupportCaseDataProviderArtifact?.CaseRelations?.TryGetValue(relationType.Key, out var caseRelations) ?? false)
|
if (SupportCaseDataProviderArtifact?.CaseRelations?.TryGetValue(relationType.Key, out var caseRelations) ?? false)
|
||||||
SupportCaseDataProviderArtifact.CaseRelations[relationType.Key] = caseRelations.Union(relationType).ToList();
|
caseRelations = caseRelations.Union(relationType).ToList();
|
||||||
else
|
else
|
||||||
SupportCaseDataProviderArtifact?.CaseRelations?.Add(relationType.Key, relationType.ToList());
|
SupportCaseDataProviderArtifact?.CaseRelations?.Add(relationType.Key, relationType.ToList());
|
||||||
}
|
}
|
||||||
@@ -91,6 +92,11 @@ namespace FasdDesktopUi.Basics.Services.SupportCase
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
if (_relationsCurrentlyLoadingData.Contains(relation))
|
||||||
|
return;
|
||||||
|
|
||||||
|
_relationsCurrentlyLoadingData.Add(relation);
|
||||||
|
|
||||||
cF4SDHealthCardRawData rawData = null;
|
cF4SDHealthCardRawData rawData = null;
|
||||||
|
|
||||||
// todo this is only a temporary fix. Currently the tablesToLoad contain also detail tables
|
// todo this is only a temporary fix. Currently the tablesToLoad contain also detail tables
|
||||||
@@ -131,11 +137,17 @@ namespace FasdDesktopUi.Basics.Services.SupportCase
|
|||||||
.Where(table => table.Key.StartsWith("Computation_") == false)
|
.Where(table => table.Key.StartsWith("Computation_") == false)
|
||||||
.All(table => !table.Value.IsIncomplete && !table.Value.Columns.Values.Any(c => c.IsIncomplete)) ?? false;
|
.All(table => !table.Value.IsIncomplete && !table.Value.Columns.Values.Any(c => c.IsIncomplete)) ?? false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SupportCaseDataProviderArtifact.HealthCardDataHelper.LoadingHelper.LastDataRequest = DateTime.Now;
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
LogException(ex);
|
LogException(ex);
|
||||||
}
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
_relationsCurrentlyLoadingData.Remove(relation);
|
||||||
|
}
|
||||||
|
|
||||||
bool IsRawDataCacheComplete()
|
bool IsRawDataCacheComplete()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -140,6 +140,9 @@ namespace FasdDesktopUi.Basics.Services.SupportCase
|
|||||||
{
|
{
|
||||||
var status = enumActualizeStatus.unknown;
|
var status = enumActualizeStatus.unknown;
|
||||||
|
|
||||||
|
if (!agentUserId.HasValue && !agentDeviceId.HasValue)
|
||||||
|
return status;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
TimeSpan refreshDelay = TimeSpan.FromMilliseconds(500);
|
TimeSpan refreshDelay = TimeSpan.FromMilliseconds(500);
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ using System.Windows.Documents;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Windows.Threading;
|
|
||||||
|
|
||||||
using C4IT.FASD.Base;
|
using C4IT.FASD.Base;
|
||||||
using C4IT.Logging;
|
using C4IT.Logging;
|
||||||
@@ -156,8 +155,6 @@ namespace FasdDesktopUi.Basics
|
|||||||
DataProviders.Add(MainIdentity.Id, _result);
|
DataProviders.Add(MainIdentity.Id, _result);
|
||||||
}
|
}
|
||||||
|
|
||||||
//await EnsureSupportCasePagesAsync();
|
|
||||||
|
|
||||||
_result.NamedParameterEntries = new cNamedParameterList(_result);
|
_result.NamedParameterEntries = new cNamedParameterList(_result);
|
||||||
|
|
||||||
_result.StartCase(MainIdentity.Id);
|
_result.StartCase(MainIdentity.Id);
|
||||||
@@ -169,12 +166,6 @@ namespace FasdDesktopUi.Basics
|
|||||||
supportCaseProcessor.SetSupportCase(supportCase);
|
supportCaseProcessor.SetSupportCase(supportCase);
|
||||||
supportCaseController.SetSupportCaseProcessor(supportCaseProcessor, Identities);
|
supportCaseController.SetSupportCaseProcessor(supportCaseProcessor, Identities);
|
||||||
|
|
||||||
if (cSupportCaseDataProvider.detailsPage == null || cSupportCaseDataProvider.slimPage == null)
|
|
||||||
{
|
|
||||||
LogEntry("Support case pages are not initialized; aborting case start.", LogLevels.Error);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
cSupportCaseDataProvider.detailsPage.SetSupportCaseController(supportCaseController);
|
cSupportCaseDataProvider.detailsPage.SetSupportCaseController(supportCaseController);
|
||||||
cSupportCaseDataProvider.slimPage.SetSupportCaseController(supportCaseController);
|
cSupportCaseDataProvider.slimPage.SetSupportCaseController(supportCaseController);
|
||||||
|
|
||||||
@@ -289,23 +280,6 @@ namespace FasdDesktopUi.Basics
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static async Task EnsureSupportCasePagesAsync()
|
|
||||||
{
|
|
||||||
if (detailsPage != null && slimPage != null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (Application.Current == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
await Application.Current.Dispatcher.InvokeAsync(() =>
|
|
||||||
{
|
|
||||||
if (slimPage == null)
|
|
||||||
slimPage = new Pages.SlimPage.SlimPageView();
|
|
||||||
if (detailsPage == null)
|
|
||||||
detailsPage = new Pages.DetailsPage.DetailsPageView();
|
|
||||||
}, DispatcherPriority.Normal);
|
|
||||||
}
|
|
||||||
|
|
||||||
public async Task CloseCaseAsync()
|
public async Task CloseCaseAsync()
|
||||||
{
|
{
|
||||||
var CM = MethodBase.GetCurrentMethod();
|
var CM = MethodBase.GetCurrentMethod();
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
d:DesignWidth="40"
|
d:DesignWidth="40"
|
||||||
x:Name="BadgeControl">
|
x:Name="BadgeControl">
|
||||||
|
|
||||||
<Border Background="{DynamicResource Color.F4SD}"
|
<Border Background="{DynamicResource Color.SoftContrast}"
|
||||||
CornerRadius="5">
|
CornerRadius="5">
|
||||||
|
|
||||||
<StackPanel HorizontalAlignment="Center"
|
<StackPanel HorizontalAlignment="Center"
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
Margin="7.5 2.5">
|
Margin="7.5 2.5">
|
||||||
<TextBlock FontSize="12"
|
<TextBlock FontSize="12"
|
||||||
FontWeight="Bold"
|
FontWeight="Bold"
|
||||||
Foreground="White"
|
Foreground="{DynamicResource FontColor.DetailsPage.DataHistory.Value}"
|
||||||
Text="{Binding ElementName=BadgeControl, Path=Text}" />
|
Text="{Binding ElementName=BadgeControl, Path=Text}" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,5 @@
|
|||||||
using F4SD_AdaptableIcon;
|
using System.Windows;
|
||||||
using FasdDesktopUi.Basics.Helper;
|
|
||||||
using System;
|
|
||||||
using System.Windows;
|
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
using static C4IT.Logging.cLogManager;
|
|
||||||
|
|
||||||
namespace FasdDesktopUi.Basics.UserControls
|
namespace FasdDesktopUi.Basics.UserControls
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -390,6 +390,7 @@ namespace FasdDesktopUi.Pages.DetailsPage
|
|||||||
BlurInvoker.BlurInvokerVisibilityChanged += (obj, e) => UpdateBlurStatus(obj);
|
BlurInvoker.BlurInvokerVisibilityChanged += (obj, e) => UpdateBlurStatus(obj);
|
||||||
|
|
||||||
NavigationHeadingUc.HeadingIconClickedEvent += NavigationHeadingUc_HeadingIconClickedEvent;
|
NavigationHeadingUc.HeadingIconClickedEvent += NavigationHeadingUc_HeadingIconClickedEvent;
|
||||||
|
NavigationHeadingUc.EmptySpaceClicked += (obj, e) => BlurBorder_Click();
|
||||||
|
|
||||||
RefreshControl.RefreshButtonClicked += RefreshButtonClickedEvent;
|
RefreshControl.RefreshButtonClicked += RefreshButtonClickedEvent;
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,15 @@
|
|||||||
Handler="HeadingIcon_TouchDown" />
|
Handler="HeadingIcon_TouchDown" />
|
||||||
</Style>
|
</Style>
|
||||||
|
|
||||||
|
<Style x:Key="DetailsPage.TitleSection.Border.NotSelected"
|
||||||
|
TargetType="Border"
|
||||||
|
BasedOn="{StaticResource DetailsPage.TitleSection.Border.NotSelected}">
|
||||||
|
<EventSetter Event="MouseLeftButtonUp"
|
||||||
|
Handler="HeadingIcon_MouseLeftButtonUp" />
|
||||||
|
<EventSetter Event="TouchDown"
|
||||||
|
Handler="HeadingIcon_TouchDown" />
|
||||||
|
</Style>
|
||||||
|
|
||||||
<Style x:Key="SwapIconStyleBase"
|
<Style x:Key="SwapIconStyleBase"
|
||||||
x:Name="SwapIconStyleBase"
|
x:Name="SwapIconStyleBase"
|
||||||
TargetType="ico:AdaptableIcon"
|
TargetType="ico:AdaptableIcon"
|
||||||
@@ -35,6 +44,18 @@
|
|||||||
Value="{x:Null}" />
|
Value="{x:Null}" />
|
||||||
<Setter Property="SelectedInternIcon"
|
<Setter Property="SelectedInternIcon"
|
||||||
Value="misc_chevron_down" />
|
Value="misc_chevron_down" />
|
||||||
|
<Setter Property="IconWidth"
|
||||||
|
Value="40" />
|
||||||
|
<Setter Property="IconHeight"
|
||||||
|
Value="42" />
|
||||||
|
<Setter Property="BorderPadding"
|
||||||
|
Value="10 0 10 0" />
|
||||||
|
<Setter Property="BorderThickness"
|
||||||
|
Value="3 0 0 0" />
|
||||||
|
<Setter Property="Margin"
|
||||||
|
Value="0" />
|
||||||
|
<Setter Property="IconCornerRadius"
|
||||||
|
Value="10" />
|
||||||
<Style.Triggers>
|
<Style.Triggers>
|
||||||
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorLevel=1, AncestorType=Border}, Path=IsMouseOver}"
|
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorLevel=1, AncestorType=Border}, Path=IsMouseOver}"
|
||||||
Value="True">
|
Value="True">
|
||||||
@@ -87,6 +108,9 @@
|
|||||||
|
|
||||||
</UserControl.Resources>
|
</UserControl.Resources>
|
||||||
|
|
||||||
|
<Border x:Name="HeadingBorder"
|
||||||
|
MouseLeftButtonUp="HeadingBorder_Clicked"
|
||||||
|
TouchDown="HeadingBorder_Clicked">
|
||||||
<ScrollViewer x:Name="HeadingScroller"
|
<ScrollViewer x:Name="HeadingScroller"
|
||||||
x:FieldModifier="private"
|
x:FieldModifier="private"
|
||||||
HorizontalScrollBarVisibility="Auto"
|
HorizontalScrollBarVisibility="Auto"
|
||||||
@@ -151,9 +175,7 @@
|
|||||||
<ico:AdaptableIcon x:Name="ComputerSwapIcon"
|
<ico:AdaptableIcon x:Name="ComputerSwapIcon"
|
||||||
Style="{DynamicResource SwapIconStyle}"
|
Style="{DynamicResource SwapIconStyle}"
|
||||||
Visibility="Visible"
|
Visibility="Visible"
|
||||||
BorderBrush="{DynamicResource Color.SoftContrast}"
|
BorderBrush="{DynamicResource Color.SoftContrast}" />
|
||||||
BorderThickness="2 0 0 0"
|
|
||||||
Padding="5 0 0 0" />
|
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Border>
|
</Border>
|
||||||
|
|
||||||
@@ -201,9 +223,7 @@
|
|||||||
<ico:AdaptableIcon x:Name="VirtualSessionSwapIcon"
|
<ico:AdaptableIcon x:Name="VirtualSessionSwapIcon"
|
||||||
Style="{DynamicResource SwapIconStyle}"
|
Style="{DynamicResource SwapIconStyle}"
|
||||||
Visibility="Visible"
|
Visibility="Visible"
|
||||||
BorderBrush="{DynamicResource Color.SoftContrast}"
|
BorderBrush="{DynamicResource Color.SoftContrast}" />
|
||||||
BorderThickness="2 0 0 0"
|
|
||||||
Padding="5 0 0 0" />
|
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Border>
|
</Border>
|
||||||
|
|
||||||
@@ -251,9 +271,7 @@
|
|||||||
<ico:AdaptableIcon x:Name="MobileDeviceSwapIcon"
|
<ico:AdaptableIcon x:Name="MobileDeviceSwapIcon"
|
||||||
Style="{DynamicResource SwapIconStyle}"
|
Style="{DynamicResource SwapIconStyle}"
|
||||||
Visibility="Visible"
|
Visibility="Visible"
|
||||||
BorderBrush="{DynamicResource Color.SoftContrast}"
|
BorderBrush="{DynamicResource Color.SoftContrast}" />
|
||||||
BorderThickness="2 0 0 0"
|
|
||||||
Padding="5 0 0 0" />
|
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Border>
|
</Border>
|
||||||
|
|
||||||
@@ -301,9 +319,7 @@
|
|||||||
<ico:AdaptableIcon x:Name="TicketSwapIcon"
|
<ico:AdaptableIcon x:Name="TicketSwapIcon"
|
||||||
Style="{DynamicResource SwapIconStyle}"
|
Style="{DynamicResource SwapIconStyle}"
|
||||||
Visibility="Visible"
|
Visibility="Visible"
|
||||||
BorderBrush="{DynamicResource Color.SoftContrast}"
|
BorderBrush="{DynamicResource Color.SoftContrast}" />
|
||||||
BorderThickness="2 0 0 0"
|
|
||||||
Padding="5 0 0 0" />
|
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Border>
|
</Border>
|
||||||
|
|
||||||
@@ -356,5 +372,5 @@
|
|||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
</ScrollViewer>
|
</ScrollViewer>
|
||||||
|
</Border>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ namespace FasdDesktopUi.Pages.DetailsPage.UserControls
|
|||||||
if (value != null)
|
if (value != null)
|
||||||
{
|
{
|
||||||
UpdateHeaderHighlights();
|
UpdateHeaderHighlights();
|
||||||
SetTicketHeadingVisibility();
|
SetHeadingVisibility();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -100,11 +100,9 @@ namespace FasdDesktopUi.Pages.DetailsPage.UserControls
|
|||||||
else if (DataProvider.HealthCardDataHelper.SelectedHealthCard.InformationClasses.Any(identity => identity is enumFasdInformationClass.User))
|
else if (DataProvider.HealthCardDataHelper.SelectedHealthCard.InformationClasses.Any(identity => identity is enumFasdInformationClass.User))
|
||||||
highlightedBorder = UserStackHighlightBorder;
|
highlightedBorder = UserStackHighlightBorder;
|
||||||
|
|
||||||
if (highlightedBorder != null)
|
highlightedBorder?.SetResourceReference(BackgroundProperty, "BackgroundColor.Menu.MainCategory");
|
||||||
highlightedBorder.SetResourceReference(BackgroundProperty, "BackgroundColor.Menu.MainCategory");
|
|
||||||
|
|
||||||
if (swapIcon != null)
|
swapIcon?.SetResourceReference(AdaptableIcon.IconBackgroundColorProperty, "BackgroundColor.Menu.MainCategory");
|
||||||
swapIcon.SetResourceReference(AdaptableIcon.IconBackgroundColorProperty, "BackgroundColor.Menu.MainCategory");
|
|
||||||
}
|
}
|
||||||
catch (Exception E)
|
catch (Exception E)
|
||||||
{
|
{
|
||||||
@@ -112,16 +110,20 @@ namespace FasdDesktopUi.Pages.DetailsPage.UserControls
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetTicketHeadingVisibility()
|
private async Task SetHeadingVisibility()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (DataProvider is null)
|
if (DataProvider is null)
|
||||||
return;
|
return;
|
||||||
|
cCollectorStatusInfo modules = await cFasdCockpitConfig.Instance.CheckCollectorStatusAsync();
|
||||||
|
if (modules != null)
|
||||||
|
{
|
||||||
|
TicketStack.Visibility = modules.HasM42Config ? Visibility.Visible : Visibility.Collapsed;
|
||||||
|
MobileDeviceStack.Visibility = modules.HasMobileDeviceConfig ? Visibility.Visible : Visibility.Collapsed;
|
||||||
|
VirtualSessionStack.Visibility = modules.HasCitrixConfig ? Visibility.Visible : Visibility.Collapsed;
|
||||||
|
}
|
||||||
|
|
||||||
//bool isTicketIntegrationActive = cFasdCockpitCommunicationBase.CockpitUserInfo?.Roles?.Any(role => string.Equals(role, "Cockpit.TicketAgent", StringComparison.OrdinalIgnoreCase)) ?? false;
|
|
||||||
bool isTicketIntegrationActive = cF4SDCockpitXmlConfig.Instance.HealthCardConfig.HealthCards.Values.Any(_e => _e.InformationClasses.Contains(enumFasdInformationClass.Ticket));
|
|
||||||
TicketStack.Visibility = isTicketIntegrationActive ? Visibility.Visible : Visibility.Collapsed;
|
|
||||||
}
|
}
|
||||||
catch (Exception E)
|
catch (Exception E)
|
||||||
{
|
{
|
||||||
@@ -144,7 +146,7 @@ namespace FasdDesktopUi.Pages.DetailsPage.UserControls
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
_me.ResetControl();
|
_me.ResetControl();
|
||||||
_me.SetTicketHeadingVisibility();
|
//_me.SetTicketHeadingVisibility();
|
||||||
_me.InitializeHeadings();
|
_me.InitializeHeadings();
|
||||||
_me.UpdateHeaderHighlights();
|
_me.UpdateHeaderHighlights();
|
||||||
}
|
}
|
||||||
@@ -260,10 +262,11 @@ namespace FasdDesktopUi.Pages.DetailsPage.UserControls
|
|||||||
VirtualSessionSwapIcon.Tag = virtualSessionDataEmpty;
|
VirtualSessionSwapIcon.Tag = virtualSessionDataEmpty;
|
||||||
MobileDeviceSwapIcon.Tag = mobileDeviceDataEmpty;
|
MobileDeviceSwapIcon.Tag = mobileDeviceDataEmpty;
|
||||||
|
|
||||||
ComputerStackHighlightBorder.Tag = computerDataEmpty;
|
UserStackHighlightBorder.Tag = userDataEmpty.InformationClass;
|
||||||
TicketStackHighlightBorder.Tag = ticketDataEmpty;
|
ComputerStackHighlightBorder.Tag = computerDataEmpty.InformationClass;
|
||||||
VirtualSessionStackHighlightBorder.Tag = virtualSessionDataEmpty;
|
TicketStackHighlightBorder.Tag = ticketDataEmpty.InformationClass;
|
||||||
MobileDeviceStackHighlightBorder.Tag = mobileDeviceDataEmpty;
|
VirtualSessionStackHighlightBorder.Tag = virtualSessionDataEmpty.InformationClass;
|
||||||
|
MobileDeviceStackHighlightBorder.Tag = mobileDeviceDataEmpty.InformationClass;
|
||||||
|
|
||||||
ComputerSwapIcon.Style = (Style)FindResource("SwapIconStyle");
|
ComputerSwapIcon.Style = (Style)FindResource("SwapIconStyle");
|
||||||
TicketSwapIcon.Style = (Style)FindResource("SwapIconStyle");
|
TicketSwapIcon.Style = (Style)FindResource("SwapIconStyle");
|
||||||
@@ -300,16 +303,6 @@ namespace FasdDesktopUi.Pages.DetailsPage.UserControls
|
|||||||
MobileDeviceStackHighlightBorder.ClearValue(OpacityProperty);
|
MobileDeviceStackHighlightBorder.ClearValue(OpacityProperty);
|
||||||
|
|
||||||
SetEditMode(false);
|
SetEditMode(false);
|
||||||
|
|
||||||
if (!cFasdCockpitCommunicationBase.Instance.IsDemo())
|
|
||||||
{
|
|
||||||
if (MobileDeviceStack.Parent is UIElement mobileParent)
|
|
||||||
mobileParent.Visibility = Visibility.Collapsed;
|
|
||||||
|
|
||||||
//if (VirtualSessionStack.Parent is UIElement virtualParent)
|
|
||||||
// virtualParent.Visibility = Visibility.Collapsed;
|
|
||||||
}
|
|
||||||
|
|
||||||
ResetSelectors();
|
ResetSelectors();
|
||||||
}
|
}
|
||||||
catch (Exception E)
|
catch (Exception E)
|
||||||
@@ -424,6 +417,7 @@ namespace FasdDesktopUi.Pages.DetailsPage.UserControls
|
|||||||
headingIcon = UserIcon;
|
headingIcon = UserIcon;
|
||||||
headingTextBlock = UserTextBlock;
|
headingTextBlock = UserTextBlock;
|
||||||
copyIcon = UserCopyIcon;
|
copyIcon = UserCopyIcon;
|
||||||
|
highlightBoder = UserStackHighlightBorder;
|
||||||
hasValue = heading.HeadingText != cMultiLanguageSupport.GetItem("Header.Select.User");
|
hasValue = heading.HeadingText != cMultiLanguageSupport.GetItem("Header.Select.User");
|
||||||
|
|
||||||
if (!hasValue)
|
if (!hasValue)
|
||||||
@@ -482,6 +476,9 @@ namespace FasdDesktopUi.Pages.DetailsPage.UserControls
|
|||||||
|
|
||||||
if (highlightBoder != null)
|
if (highlightBoder != null)
|
||||||
{
|
{
|
||||||
|
if (hasValue)
|
||||||
|
highlightBoder.Tag = heading.Realtion;
|
||||||
|
else
|
||||||
highlightBoder.Tag = new cSwapCaseInfo() { SelectedCaseInformationClass = heading.InformationClass, HeadingDatas = HeadingData };
|
highlightBoder.Tag = new cSwapCaseInfo() { SelectedCaseInformationClass = heading.InformationClass, HeadingDatas = HeadingData };
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -603,7 +600,7 @@ namespace FasdDesktopUi.Pages.DetailsPage.UserControls
|
|||||||
|
|
||||||
#region SwapIcon Click
|
#region SwapIcon Click
|
||||||
|
|
||||||
private void SwapIcon_Click(object sender)
|
private void SwapIcon_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
|
|
||||||
try
|
try
|
||||||
@@ -639,7 +636,7 @@ namespace FasdDesktopUi.Pages.DetailsPage.UserControls
|
|||||||
ShowsRelations = true;
|
ShowsRelations = true;
|
||||||
cUiActionBase.RaiseEvent(new cShowHeadingSelectionMenuAction(), this, sender);
|
cUiActionBase.RaiseEvent(new cShowHeadingSelectionMenuAction(), this, sender);
|
||||||
DoShowRelations(swapCaseData, location, SupportCaseController);
|
DoShowRelations(swapCaseData, location, SupportCaseController);
|
||||||
//Dispatcher.Invoke(async () => await action.RunUiActionAsync(sender, location, false, DataProvider));
|
e.Handled = true;
|
||||||
}
|
}
|
||||||
catch (Exception E)
|
catch (Exception E)
|
||||||
{
|
{
|
||||||
@@ -710,12 +707,12 @@ namespace FasdDesktopUi.Pages.DetailsPage.UserControls
|
|||||||
|
|
||||||
private void SwapIcon_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
|
private void SwapIcon_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
|
||||||
{
|
{
|
||||||
SwapIcon_Click(sender);
|
SwapIcon_Click(sender, e);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SwapIcon_TouchDown(object sender, TouchEventArgs e)
|
private void SwapIcon_TouchDown(object sender, TouchEventArgs e)
|
||||||
{
|
{
|
||||||
SwapIcon_Click(sender);
|
SwapIcon_Click(sender, e);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@@ -826,10 +823,17 @@ namespace FasdDesktopUi.Pages.DetailsPage.UserControls
|
|||||||
UndoTicketIcon_Click();
|
UndoTicketIcon_Click();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
// todo hacky solution to toggle blurr border. Think about better solution
|
||||||
|
public event EventHandler EmptySpaceClicked;
|
||||||
|
|
||||||
|
private void HeadingBorder_Clicked(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
EmptySpaceClicked?.Invoke(this, EventArgs.Empty);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -811,7 +811,8 @@ namespace FasdDesktopUi.Pages.SearchPage
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
return cFasdCockpitConfig.Instance?.Global?.TicketConfiguration?.ShowOverview == true
|
return cFasdCockpitConfig.Instance?.Global?.TicketConfiguration?.ShowOverview == true
|
||||||
&& IsTicketIntegrationActive();
|
&& IsTicketIntegrationActive()
|
||||||
|
&& cFasdCockpitConfig.Instance.HasM42Configuration();
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool IsTicketIntegrationActive()
|
private bool IsTicketIntegrationActive()
|
||||||
|
|||||||
@@ -210,9 +210,10 @@
|
|||||||
<ico:AdaptableIcon x:Name="ShouldSkipSlimViewPolicy"
|
<ico:AdaptableIcon x:Name="ShouldSkipSlimViewPolicy"
|
||||||
SelectedInternIcon="lock_closed"
|
SelectedInternIcon="lock_closed"
|
||||||
PrimaryIconColor="{DynamicResource Color.Menu.Icon}"
|
PrimaryIconColor="{DynamicResource Color.Menu.Icon}"
|
||||||
Margin="-25,-5,0,0"
|
BorderPadding="0"
|
||||||
IconWidth="23"
|
Margin="-20 0 0 0"
|
||||||
IconHeight="23"
|
IconWidth="12"
|
||||||
|
IconHeight="12"
|
||||||
Visibility="Collapsed" />
|
Visibility="Collapsed" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
@@ -229,9 +230,10 @@
|
|||||||
<ico:AdaptableIcon x:Name="PositionOfSmallViewsPolicy"
|
<ico:AdaptableIcon x:Name="PositionOfSmallViewsPolicy"
|
||||||
SelectedInternIcon="lock_closed"
|
SelectedInternIcon="lock_closed"
|
||||||
PrimaryIconColor="{DynamicResource Color.Menu.Icon}"
|
PrimaryIconColor="{DynamicResource Color.Menu.Icon}"
|
||||||
Margin="-25,-5,0,0"
|
BorderPadding="0"
|
||||||
IconWidth="23"
|
Margin="-20 0 0 0"
|
||||||
IconHeight="23"
|
IconWidth="12"
|
||||||
|
IconHeight="12"
|
||||||
Visibility="Collapsed" />
|
Visibility="Collapsed" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
@@ -290,9 +292,10 @@
|
|||||||
<ico:AdaptableIcon x:Name="PositionOfFavouriteBarPolicy"
|
<ico:AdaptableIcon x:Name="PositionOfFavouriteBarPolicy"
|
||||||
SelectedInternIcon="lock_closed"
|
SelectedInternIcon="lock_closed"
|
||||||
PrimaryIconColor="{DynamicResource Color.Menu.Icon}"
|
PrimaryIconColor="{DynamicResource Color.Menu.Icon}"
|
||||||
Margin="-25,-5,0,0"
|
BorderPadding="0"
|
||||||
IconWidth="23"
|
Margin="-20 0 0 0"
|
||||||
IconHeight="23"
|
IconWidth="12"
|
||||||
|
IconHeight="12"
|
||||||
Visibility="Collapsed" />
|
Visibility="Collapsed" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
|
|||||||
@@ -315,6 +315,36 @@ namespace FasdDesktopUi
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<cCollectorStatusInfo> CheckCollectorStatusAsync()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var _res = await cFasdCockpitCommunicationBase.Instance.CheckCollectorStatusAsync();
|
||||||
|
if(_res != null)
|
||||||
|
return _res;
|
||||||
|
}
|
||||||
|
catch (Exception E)
|
||||||
|
{
|
||||||
|
LogException(E);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool HasM42Configuration()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return !string.IsNullOrWhiteSpace(cCockpitConfiguration.Instance?.m42ServerConfiguration?.Server);
|
||||||
|
}
|
||||||
|
catch (Exception E)
|
||||||
|
{
|
||||||
|
LogException(E);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public async Task InstantiateAnalyticsAsync(Guid SessionId)
|
public async Task InstantiateAnalyticsAsync(Guid SessionId)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
[assembly: AssemblyCopyright("Copyright © 2026, Consulting4IT GmbH, Germany")]
|
[assembly: AssemblyCopyright("Copyright © 2026, Consulting4IT GmbH, Germany")]
|
||||||
[assembly: AssemblyTrademark("")]
|
[assembly: AssemblyTrademark("")]
|
||||||
|
|
||||||
[assembly: AssemblyVersion("2.6.*")]
|
[assembly: AssemblyVersion("2.7.*")]
|
||||||
[assembly: AssemblyInformationalVersion("2.6.1.2")]
|
[assembly: AssemblyInformationalVersion("2.7.0.0")]
|
||||||
|
|
||||||
[assembly: AssemblyMinServerVersion("2.6.1.1")]
|
[assembly: AssemblyMinServerVersion("2.6.1.1")]
|
||||||
Reference in New Issue
Block a user