feat: expand cockpit integrations and support workflows
Add Phoenix remote desktop, action connector, documentation engine, and gamification support. Refactor support-case processing and search/action UI, and update installer assets and dependencies.
This commit is contained in:
@@ -34,13 +34,19 @@ namespace FasdDesktopUi.Basics.Services.SupportCase
|
||||
~SupportCase()
|
||||
{
|
||||
if (_relationService != null)
|
||||
{
|
||||
_relationService.RelationsReset -= HandleRelationsReset;
|
||||
_relationService.RelationsFound -= HandleRelationsFound;
|
||||
}
|
||||
}
|
||||
|
||||
public void Initialize()
|
||||
{
|
||||
if (_relationService != null)
|
||||
_relationService.RelationsFound += HandleRelationsFound;
|
||||
if (_relationService is null)
|
||||
return;
|
||||
|
||||
_relationService.RelationsReset += HandleRelationsReset;
|
||||
_relationService.RelationsFound += HandleRelationsFound;
|
||||
}
|
||||
|
||||
public ILookup<enumFasdInformationClass, cF4sdApiSearchResultRelation> GetCaseRelations()
|
||||
@@ -69,13 +75,13 @@ namespace FasdDesktopUi.Basics.Services.SupportCase
|
||||
|
||||
foreach (var relationType in relations)
|
||||
{
|
||||
if (_caseRelations.TryGetValue(relationType.Key, out var caseRelation))
|
||||
caseRelation = caseRelation.Union(relationType).ToList();
|
||||
if (_caseRelations.ContainsKey(relationType.Key))
|
||||
_caseRelations[relationType.Key] = _caseRelations[relationType.Key].Union(relationType).ToList();
|
||||
else
|
||||
_caseRelations.Add(relationType.Key, relationType.ToList());
|
||||
|
||||
if (SupportCaseDataProviderArtifact?.CaseRelations?.TryGetValue(relationType.Key, out var caseRelations) ?? false)
|
||||
caseRelations = caseRelations.Union(relationType).ToList();
|
||||
if (SupportCaseDataProviderArtifact?.CaseRelations?.ContainsKey(relationType.Key) ?? false)
|
||||
SupportCaseDataProviderArtifact.CaseRelations[relationType.Key] = SupportCaseDataProviderArtifact.CaseRelations[relationType.Key].Union(relationType).ToList();
|
||||
else
|
||||
SupportCaseDataProviderArtifact?.CaseRelations?.Add(relationType.Key, relationType.ToList());
|
||||
}
|
||||
@@ -134,7 +140,6 @@ namespace FasdDesktopUi.Basics.Services.SupportCase
|
||||
UpdateSupportCaseDataCache(relation, rawData?.Tables?.Values);
|
||||
|
||||
isDataComplete = rawData?.Tables?
|
||||
.Where(table => table.Key.StartsWith("Computation_") == false)
|
||||
.All(table => !table.Value.IsIncomplete && !table.Value.Columns.Values.Any(c => c.IsIncomplete)) ?? false;
|
||||
}
|
||||
|
||||
@@ -279,15 +284,25 @@ namespace FasdDesktopUi.Basics.Services.SupportCase
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerable<object> GetSupportCaseHealthcardData(cF4sdApiSearchResultRelation relation, cValueAddress valueAddress)
|
||||
public IList<object> GetSupportCaseHealthcardData(cF4sdApiSearchResultRelation relation, cValueAddress valueAddress, bool getStatic)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!_supportCaseDataCache.TryGetValue(valueAddress.ValueTable, out var tables))
|
||||
if (!TryGetTable(relation, valueAddress, out var table))
|
||||
return null;
|
||||
|
||||
if (!tables.TryGetValue(relation, out var table))
|
||||
return null;
|
||||
if (getStatic && !string.IsNullOrEmpty(table.AlternateStaticTable))
|
||||
{
|
||||
cValueAddress staticValueAdress = new cValueAddress()
|
||||
{
|
||||
DayIndex = valueAddress.DayIndex,
|
||||
ValueTable = table.AlternateStaticTable,
|
||||
ValueColumn = valueAddress.ValueColumn
|
||||
};
|
||||
|
||||
if (TryGetTable(relation, staticValueAdress, out var staticTable))
|
||||
table = staticTable;
|
||||
}
|
||||
|
||||
if (!table.Columns.TryGetValue(valueAddress.ValueColumn, out var column))
|
||||
return null;
|
||||
@@ -302,6 +317,28 @@ namespace FasdDesktopUi.Basics.Services.SupportCase
|
||||
return null;
|
||||
}
|
||||
|
||||
private bool TryGetTable(cF4sdApiSearchResultRelation relation, cValueAddress valueAddress, out cF4SDHealthCardRawData.cHealthCardTable table)
|
||||
{
|
||||
table = null;
|
||||
|
||||
if (valueAddress is null)
|
||||
return false;
|
||||
|
||||
if (!_supportCaseDataCache.TryGetValue(valueAddress.ValueTable, out var tables))
|
||||
return false;
|
||||
|
||||
if (!tables.TryGetValue(relation, out table))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private void HandleRelationsReset(object sender, EventArgs e)
|
||||
{
|
||||
_caseRelations.Clear();
|
||||
AddCaseRelations(_relationService?.GetLoadedRelations());
|
||||
}
|
||||
|
||||
private void HandleRelationsFound(object sender, StagedSearchResultRelationsEventArgs e)
|
||||
{
|
||||
AddCaseRelations(e.StagedResultRelations.Relations);
|
||||
|
||||
Reference in New Issue
Block a user