aktueller Stand

This commit is contained in:
Meik
2026-01-28 12:08:39 +01:00
parent 1283750829
commit ee1f54675e
104 changed files with 6797 additions and 1867 deletions

View File

@@ -205,9 +205,6 @@
<NamedParameter ParameterName="ad-dn-User" Name="Distinguished name user" Display="STRING" ValueTable="ad-user" ValueColumn="distinguishedName">
<Name Lang="DE">Distinguished Name User</Name>
</NamedParameter>
<NamedParameter ParameterName="ad-dn-computer" Name="Distinguished name computer" Display="STRING" ValueTable="ad-computer" ValueColumn="distinguishedName">
<Name Lang="DE">Distinguished Name computer</Name>
</NamedParameter>
<NamedParameter ParameterName="IpAddress" Name="IP address" Display="STRING" ValueTable="agnt-computer-event-string-latest" ValueColumn="NetworkIPLast">
<Name Lang="DE">IP Adresse</Name>
</NamedParameter>
@@ -282,8 +279,8 @@
<Computation-Switch-Case ValueId="1">IBM</Computation-Switch-Case>
</Computation-Switch>
<Computation-Format Name="FullDeviceModelName" Format="{0} {1}" ValueTable0="agnt-computer" ValueColumn0="SystemManufacturer" ValueTable1="Computation_DeviceModel" ValueColumn1="default" RemoveDuplicateWords="true" />
<Computation-LinearAddition Name="IntuneMobileDeviceCount" a="1" b="1" c="0" ValueTable0="intune-userDeviceCount" ValueColumn0="iOS" ValueTable1="intune-userDeviceCount" ValueColumn1="android" />
<Computation-LinearAddition Name="IntuneOtherDeviceCount" a="1" b="1" c="0" ValueTable0="intune-userDeviceCount" ValueColumn0="macOs" ValueTable1="intune-userDeviceCount" ValueColumn1="linux" />
<!--<Computation-LinearAddition Name="IntuneMobileDeviceCount" a="1" b="1" c="0" ValueTable0="intune-userDeviceCount" ValueColumn0="iOS" ValueTable1="intune-userDeviceCount" ValueColumn1="android" />
<Computation-LinearAddition Name="IntuneOtherDeviceCount" a="1" b="1" c="0" ValueTable0="intune-userDeviceCount" ValueColumn0="macOs" ValueTable1="intune-userDeviceCount" ValueColumn1="linux" />-->
</Computations>
<Translations>
<Translator Name="true_good">
@@ -470,7 +467,7 @@
<State-Aggregation RefName="Ram_Details_Aggregation" Name="RAM Details">
<State-Link Reference="RAM_Relative" />
<State-Level Name="Free Memory" ValueTable="agnt-computer-event" ValueColumn="MemoryFree" Warning="4294967296" Error="2147483648" Direction="down">
<State-Level Name="Free Memory" ValueTable="agnt-computer-event-numerical" ValueColumn="MemoryFree" Warning="4294967296" Error="2147483648" Direction="down">
<Name Lang="DE">Freier Speicher</Name>
</State-Level>
</State-Aggregation>
@@ -1065,9 +1062,6 @@
<NamedParameter ParameterName="ad-dn-User" Name="Distinguished name user" Display="STRING" ValueTable="ad-user" ValueColumn="distinguishedName">
<Name Lang="DE">Distinguished Name User</Name>
</NamedParameter>
<NamedParameter ParameterName="ad-dn-computer" Name="Distinguished name computer" Display="STRING" ValueTable="ad-computer" ValueColumn="distinguishedName">
<Name Lang="DE">Distinguished Name computer</Name>
</NamedParameter>
<NamedParameter ParameterName="UserFullName" Name="User name" Display="STRING" ValueTable="ad-user" ValueColumn="name">
<Name Lang="DE">Anwender</Name>

View File

@@ -102,6 +102,13 @@
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ValuedFormat">
<xs:restriction base="xs:NCName">
<xs:enumeration value="csv" />
<xs:enumeration value="json" />
</xs:restriction>
</xs:simpleType>
<xs:attributeGroup name="ValuePointer">
<xs:attribute name="Name" type="xs:string" use="optional" />
<xs:attribute name="ParameterName" type="xs:NCName" use="optional" />
@@ -543,7 +550,8 @@
<xs:complexType>
<xs:complexContent>
<xs:extension base="State-Details-Base">
<xs:attribute name="RowSeparator" type="xs:string" use="required"/>
<xs:attribute name="Format" type="ValuedFormat" use="optional"/>
<xs:attribute name="RowSeparator" type="xs:string" use="optional"/>
<xs:attribute name="ColSeparator" type="xs:string" use="optional"/>
<xs:attribute name="StringDecorator" type="Separator" use="optional"/>
</xs:extension>

View File

@@ -54,7 +54,7 @@
</PropertyGroup>
<ItemGroup>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
<HintPath>..\packages\Newtonsoft.Json.13.0.4\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
@@ -122,6 +122,7 @@
<Content Include="Config\F4SD-QuickAction-Configuration.xml">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<None Include="app.config" />
<None Include="Config\F4SD-CopyTemplate-Configuration.xsd">
<SubType>Designer</SubType>
</None>

View File

@@ -268,7 +268,41 @@ namespace C4IT.FASD.Cockpit.Communication
return ticket;
}
public override async Task<List<cF4sdApiSearchResultRelation>> GetTicketOverviewRelations(string key, bool useRoleScope, int count)
public override Task<Dictionary<string, int>> GetTicketOverviewCounts(IEnumerable<string> keys, bool useRoleScope)
{
var scopeKey = useRoleScope ? "Role" : "Personal";
var comparer = StringComparer.OrdinalIgnoreCase;
var result = new Dictionary<string, int>(comparer);
var requestedKeys = keys == null
? TicketOverviewRelations.Keys.ToList()
: keys.Where(k => !string.IsNullOrWhiteSpace(k)).Distinct(comparer).ToList();
if (requestedKeys.Count == 0)
requestedKeys.AddRange(TicketOverviewRelations.Keys);
foreach (var key in requestedKeys)
{
if (string.IsNullOrWhiteSpace(key))
continue;
if (TicketOverviewRelations.TryGetValue(key, out var scopeDictionary) &&
scopeDictionary != null &&
scopeDictionary.TryGetValue(scopeKey, out var definitions) &&
definitions != null)
{
result[key] = definitions.Count;
}
else
{
result[key] = 0;
}
}
return Task.FromResult(result);
}
public override async Task<List<cF4sdApiSearchResultRelation>> GetTicketOverviewRelations(string key, bool useRoleScope, int count)
{
var CM = MethodBase.GetCurrentMethod();
LogMethodBegin(CM);
@@ -821,14 +855,14 @@ namespace C4IT.FASD.Cockpit.Communication
output.Add(new cF4sdApiSearchResultRelation() { id = Guid.NewGuid(), Name = "C4-CK007", DisplayName = "C4-CK007", LastUsed = DateTime.UtcNow, Type = enumF4sdSearchResultClass.Computer, UsingLevel = 1, Identities = new cF4sdIdentityList() { new cF4sdIdentityEntry() { Class = enumFasdInformationClass.User, Id = resultIds.First() }, new cF4sdIdentityEntry() { Class = enumFasdInformationClass.Computer, Id = Guid.NewGuid() } } });
break;
case constGuidTimoTicket:
output.Add(new cF4sdApiSearchResultRelation() { id = Guid.Parse(constGuidTimoTicketComputer), Name = "C4-TT007", DisplayName = "C4-TT007", LastUsed = DateTime.UtcNow.AddSeconds(-31), Type = enumF4sdSearchResultClass.Computer, UsingLevel = 1, Identities = new cF4sdIdentityList() { new cF4sdIdentityEntry() { Class = enumFasdInformationClass.User, Id = Guid.Parse(constGuidTimoTicket) }, new cF4sdIdentityEntry() { Class = enumFasdInformationClass.Computer, Id = Guid.Parse(constGuidTimoTicketComputer) } } });
output.Add(new cF4sdApiSearchResultRelation() { id = Guid.NewGuid(), Name = "C4-NB00015", DisplayName = "C4-NB00015", LastUsed = DateTime.UtcNow.AddHours(-10), Type = enumF4sdSearchResultClass.Computer, UsingLevel = 0.6, Identities = new cF4sdIdentityList() { new cF4sdIdentityEntry() { Class = enumFasdInformationClass.User, Id = Guid.Parse(constGuidTimoTicket) }, new cF4sdIdentityEntry() { Class = enumFasdInformationClass.Computer, Id = Guid.NewGuid() } } });
output.Add(new cF4sdApiSearchResultRelation() { id = Guid.Parse(constGuidTimoTicketComputer), Name = "C4-TT007", DisplayName = "C4-TT007", LastUsed = DateTime.UtcNow.AddSeconds(-31), Type = enumF4sdSearchResultClass.Computer, UsingLevel = 1, Identities = new cF4sdIdentityList() { new cF4sdIdentityEntry() { Class = enumFasdInformationClass.User, Id = Guid.Parse(constGuidTimoTicket) }, new cF4sdIdentityEntry() { Class = enumFasdInformationClass.Computer, Id = Guid.Parse(constGuidTimoTicketComputer) } }, Infos = new Dictionary<string, string>() });
output.Add(new cF4sdApiSearchResultRelation() { id = Guid.NewGuid(), Name = "C4-NB00015", DisplayName = "C4-NB00015", LastUsed = DateTime.UtcNow.AddHours(-10), Type = enumF4sdSearchResultClass.Computer, UsingLevel = 0.6, Identities = new cF4sdIdentityList() { new cF4sdIdentityEntry() { Class = enumFasdInformationClass.User, Id = Guid.Parse(constGuidTimoTicket) }, new cF4sdIdentityEntry() { Class = enumFasdInformationClass.Computer, Id = Guid.NewGuid() } }, Infos = new Dictionary<string, string>() });
var demoTickets = await GetDemoTicketData(new cF4sdHealthCardRawDataRequest() { Identities = new cF4sdIdentityList() { new cF4sdIdentityEntry() { Class = enumFasdInformationClass.User, Id = Guid.Parse(constGuidTimoTicket) }, new cF4sdIdentityEntry() { Class = enumFasdInformationClass.Computer, Id = Guid.NewGuid() } } });
foreach (var demoTicket in demoTickets)
{
output.Add(new cF4sdApiSearchResultRelation() { id = demoTicket.Id, Name = demoTicket.Name, DisplayName = demoTicket.Name, Infos = new Dictionary<string, string>() { ["Summary"] = demoTicket.Summary, ["StatusId"] = ((int)demoTicket.Status).ToString(), ["Asset"] = demoTicket.Asset }, Type = enumF4sdSearchResultClass.Ticket, Identities = new cF4sdIdentityList() { new cF4sdIdentityEntry() { Class = enumFasdInformationClass.User, Id = Guid.Parse(constGuidTimoTicket) }, new cF4sdIdentityEntry() { Class = enumFasdInformationClass.Ticket, Id = demoTicket.Id } } });
output.Add(new cF4sdApiSearchResultRelation() { id = demoTicket.Id, Name = demoTicket.Name, DisplayName = demoTicket.Name, Infos = new Dictionary<string, string>() { ["Summary"] = demoTicket.Summary, ["Status"] = demoTicket.Status.ToString(), ["StatusId"] = ((int)demoTicket.Status).ToString(), ["Asset"] = demoTicket.Asset }, Type = enumF4sdSearchResultClass.Ticket, Identities = new cF4sdIdentityList() { new cF4sdIdentityEntry() { Class = enumFasdInformationClass.User, Id = Guid.Parse(constGuidTimoTicket) }, new cF4sdIdentityEntry() { Class = enumFasdInformationClass.Ticket, Id = demoTicket.Id } } });
}
break;
@@ -855,6 +889,7 @@ namespace C4IT.FASD.Cockpit.Communication
LogMethodBegin(CM);
var output = new cF4SDHealthCardRawData();
cF4SDHealthCardRawData.cHealthCardTable outputTable;
try
{
@@ -890,47 +925,52 @@ namespace C4IT.FASD.Cockpit.Communication
}
output.Tables["M42Wpm-Tickets"] = new cF4SDHealthCardRawData.cHealthCardTable()
outputTable = new cF4SDHealthCardRawData.cHealthCardTable()
{
Name = "M42Wpm-Tickets",
InformationClass = enumFasdInformationClass.Ticket,
IsStatic = true,
Columns = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTableColumn>()
{
["name"] = new cF4SDHealthCardRawData.cHealthCardTableColumn() { Values = new List<object>() { selectedTicket.Name } },
["Status"] = new cF4SDHealthCardRawData.cHealthCardTableColumn() { Values = new List<object>() { ticketStatusString } },
["Priority"] = new cF4SDHealthCardRawData.cHealthCardTableColumn() { Values = new List<object>() { selectedTicket.Priority } },
["AffectedUser"] = new cF4SDHealthCardRawData.cHealthCardTableColumn() { Values = new List<object>() { selectedTicket.AffectedUser } },
["AssetName"] = new cF4SDHealthCardRawData.cHealthCardTableColumn() { Values = new List<object>() { selectedTicket.Asset } },
["CreationDaysSinceNow"] = new cF4SDHealthCardRawData.cHealthCardTableColumn() { Values = new List<object>() { selectedTicket.CreationDaysSinceNow } },
["CreationDate"] = new cF4SDHealthCardRawData.cHealthCardTableColumn() { Values = new List<object>() { selectedTicket.CreationDate.ToUniversalTime() } },
["ClosingDaysSinceNow"] = new cF4SDHealthCardRawData.cHealthCardTableColumn() { Values = new List<object>() { selectedTicket.ClosingDaysSinceNow } },
["ClosingDate"] = new cF4SDHealthCardRawData.cHealthCardTableColumn() { Values = new List<object>() { selectedTicket.ClosingDate } },
["Category"] = new cF4SDHealthCardRawData.cHealthCardTableColumn() { Values = new List<object>() { selectedTicket.Category } },
["CreationSource"] = new cF4SDHealthCardRawData.cHealthCardTableColumn() { Values = new List<object>() { selectedTicket.CreationSource.ToString() } },
["Description"] = new cF4SDHealthCardRawData.cHealthCardTableColumn() { Values = new List<object>() { selectedTicket.Description?.ToString() } },
["DescriptionHtml"] = new cF4SDHealthCardRawData.cHealthCardTableColumn() { Values = new List<object>() { selectedTicket.DescriptionHtml?.ToString() } },
["Summary"] = new cF4SDHealthCardRawData.cHealthCardTableColumn() { Values = new List<object>() { selectedTicket.Summary.ToString() } },
["Solution"] = new cF4SDHealthCardRawData.cHealthCardTableColumn() { Values = new List<object>() { selectedTicket.Solution?.ToString() } },
["SolutionHtml"] = new cF4SDHealthCardRawData.cHealthCardTableColumn() { Values = new List<object>() { selectedTicket.SolutionHtml?.ToString() } },
}
};
output.Tables["M42Wpm-Ticket-History"] = new cF4SDHealthCardRawData.cHealthCardTable()
outputTable.Columns = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTableColumn>()
{
["name"] = new cF4SDHealthCardRawData.cHealthCardTableColumn(outputTable) { Values = new List<object>() { selectedTicket.Name } },
["Status"] = new cF4SDHealthCardRawData.cHealthCardTableColumn(outputTable) { Values = new List<object>() { ticketStatusString } },
["Priority"] = new cF4SDHealthCardRawData.cHealthCardTableColumn(outputTable) { Values = new List<object>() { selectedTicket.Priority } },
["AffectedUser"] = new cF4SDHealthCardRawData.cHealthCardTableColumn(outputTable) { Values = new List<object>() { selectedTicket.AffectedUser } },
["AssetName"] = new cF4SDHealthCardRawData.cHealthCardTableColumn(outputTable) { Values = new List<object>() { selectedTicket.Asset } },
["CreationDaysSinceNow"] = new cF4SDHealthCardRawData.cHealthCardTableColumn(outputTable) { Values = new List<object>() { selectedTicket.CreationDaysSinceNow } },
["CreationDate"] = new cF4SDHealthCardRawData.cHealthCardTableColumn(outputTable) { Values = new List<object>() { selectedTicket.CreationDate.ToUniversalTime() } },
["ClosingDaysSinceNow"] = new cF4SDHealthCardRawData.cHealthCardTableColumn(outputTable) { Values = new List<object>() { selectedTicket.ClosingDaysSinceNow } },
["ClosingDate"] = new cF4SDHealthCardRawData.cHealthCardTableColumn(outputTable) { Values = new List<object>() { selectedTicket.ClosingDate } },
["Category"] = new cF4SDHealthCardRawData.cHealthCardTableColumn(outputTable) { Values = new List<object>() { selectedTicket.Category } },
["CreationSource"] = new cF4SDHealthCardRawData.cHealthCardTableColumn(outputTable) { Values = new List<object>() { selectedTicket.CreationSource.ToString() } },
["Description"] = new cF4SDHealthCardRawData.cHealthCardTableColumn(outputTable) { Values = new List<object>() { selectedTicket.Description?.ToString() } },
["DescriptionHtml"] = new cF4SDHealthCardRawData.cHealthCardTableColumn(outputTable) { Values = new List<object>() { selectedTicket.DescriptionHtml?.ToString() } },
["Summary"] = new cF4SDHealthCardRawData.cHealthCardTableColumn(outputTable) { Values = new List<object>() { selectedTicket.Summary.ToString() } },
["Solution"] = new cF4SDHealthCardRawData.cHealthCardTableColumn(outputTable) { Values = new List<object>() { selectedTicket.Solution?.ToString() } },
["SolutionHtml"] = new cF4SDHealthCardRawData.cHealthCardTableColumn(outputTable) { Values = new List<object>() { selectedTicket.SolutionHtml?.ToString() } },
};
output.Tables["M42Wpm-Tickets"] = outputTable;
outputTable = new cF4SDHealthCardRawData.cHealthCardTable()
{
Name = "M42Wpm-Ticket-History",
InformationClass = enumFasdInformationClass.Ticket,
IsStatic = false,
Columns = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTableColumn>()
{
["Header"] = new cF4SDHealthCardRawData.cHealthCardTableColumn(),
["IsVisibleForUser"] = new cF4SDHealthCardRawData.cHealthCardTableColumn(),
["CreationDaysSinceNow"] = new cF4SDHealthCardRawData.cHealthCardTableColumn(),
["time"] = new cF4SDHealthCardRawData.cHealthCardTableColumn(),
["Description"] = new cF4SDHealthCardRawData.cHealthCardTableColumn(),
["DescriptionHtml"] = new cF4SDHealthCardRawData.cHealthCardTableColumn()
}
IsStatic = false
};
outputTable.Columns = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTableColumn>()
{
["Header"] = new cF4SDHealthCardRawData.cHealthCardTableColumn(outputTable),
["IsVisibleForUser"] = new cF4SDHealthCardRawData.cHealthCardTableColumn(outputTable),
["CreationDaysSinceNow"] = new cF4SDHealthCardRawData.cHealthCardTableColumn(outputTable),
["time"] = new cF4SDHealthCardRawData.cHealthCardTableColumn(outputTable),
["Description"] = new cF4SDHealthCardRawData.cHealthCardTableColumn(outputTable),
["DescriptionHtml"] = new cF4SDHealthCardRawData.cHealthCardTableColumn(outputTable)
};
output.Tables["M42Wpm-Ticket-History"] = outputTable;
foreach (var journalItem in selectedTicket.JournalItems)
{
@@ -944,55 +984,63 @@ namespace C4IT.FASD.Cockpit.Communication
foreach (var directLink in selectedTicket.DirectLinks)
{
output.Tables["M42Wpm-Tickets"].Columns[directLink.Key] = new cF4SDHealthCardRawData.cHealthCardTableColumn() { ColumnName = directLink.Key, IsIncomplete = false, Values = new List<object>() { directLink.Value } };
outputTable = output.Tables["M42Wpm-Tickets"];
if (outputTable?.Columns != null)
outputTable.Columns[directLink.Key] = new cF4SDHealthCardRawData.cHealthCardTableColumn(outputTable) { ColumnName = directLink.Key, IsIncomplete = false, Values = new List<object>() { directLink.Value } };
}
}
}
output.Tables.Add("sequenceTable", new cF4SDHealthCardRawData.cHealthCardTable()
outputTable = new cF4SDHealthCardRawData.cHealthCardTable()
{
IsIncomplete = true,
IsStatic = false,
StartingIndex = 7,
Columns = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTableColumn>()
StartingIndex = 7
};
outputTable.Columns = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTableColumn>()
{
["sequenceColumn"] = new cF4SDHealthCardRawData.cHealthCardTableColumn(outputTable)
{
["sequenceColumn"] = new cF4SDHealthCardRawData.cHealthCardTableColumn()
{
ColumnName = "sequenceColumn",
Values = new List<object>() { 1, 0 }
}
ColumnName = "sequenceColumn",
Values = new List<object>() { 1, 0 }
}
});
};
output.Tables.Add("sequenceTable2", new cF4SDHealthCardRawData.cHealthCardTable()
output.Tables.Add("sequenceTable", outputTable);
outputTable = new cF4SDHealthCardRawData.cHealthCardTable()
{
IsIncomplete = true,
IsStatic = false,
StartingIndex = 7,
Columns = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTableColumn>()
StartingIndex = 7
};
outputTable.Columns = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTableColumn>()
{
["sequenceColumn"] = new cF4SDHealthCardRawData.cHealthCardTableColumn(outputTable)
{
["sequenceColumn"] = new cF4SDHealthCardRawData.cHealthCardTableColumn()
{
ColumnName = "sequenceColumn",
Values = new List<object>() { 8, 1, 0 }
}
ColumnName = "sequenceColumn",
Values = new List<object>() { 8, 1, 0 }
}
});
};
output.Tables.Add("sequenceTable3", new cF4SDHealthCardRawData.cHealthCardTable()
output.Tables.Add("sequenceTable2", outputTable);
outputTable = new cF4SDHealthCardRawData.cHealthCardTable()
{
IsIncomplete = false,
StartingIndex = 0,
IsStatic = true,
Columns = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTableColumn>()
IsStatic = true
};
outputTable.Columns = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTableColumn>()
{
["sequenceColumn"] = new cF4SDHealthCardRawData.cHealthCardTableColumn(outputTable)
{
["sequenceColumn"] = new cF4SDHealthCardRawData.cHealthCardTableColumn()
{
ColumnName = "sequenceColumn",
Values = new List<object>() { "Static" }
}
ColumnName = "sequenceColumn",
Values = new List<object>() { "Static" }
}
});
};
output.Tables.Add("sequenceTable3", outputTable);
output.Id = Guid.NewGuid();
@@ -1041,49 +1089,61 @@ namespace C4IT.FASD.Cockpit.Communication
await Task.Delay(250);
lock (CachedHealthCardRawData)
{
if (!CachedHealthCardRawData.ContainsKey(Id))
CachedHealthCardRawData[Id] = new cF4SDHealthCardRawData() { Id = Id, Tables = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTable>() };
if (!CachedHealthCardRawData.TryGetValue(Id, out var _rawData))
{
_rawData = new cF4SDHealthCardRawData() { Id = Id, Tables = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTable>() };
CachedHealthCardRawData[Id] = _rawData;
}
if (CachedHealthCardRawData[Id].Tables is null)
CachedHealthCardRawData[Id].Tables = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTable>();
if (_rawData.Tables is null)
_rawData.Tables = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTable>();
if (!CachedHealthCardRawData[Id].Tables.ContainsKey(tableOne))
CachedHealthCardRawData[Id].Tables[tableOne] = new cF4SDHealthCardRawData.cHealthCardTable() { Columns = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTableColumn>() };
if (!_rawData.Tables.TryGetValue(tableOne, out var _table))
{
_table = new cF4SDHealthCardRawData.cHealthCardTable() { Name = tableOne, Columns = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTableColumn>() };
_rawData.Tables[tableOne] = _table;
}
if (!CachedHealthCardRawData[Id].Tables[tableOne].Columns.ContainsKey(columnName))
CachedHealthCardRawData[Id].Tables[tableOne].Columns[columnName] = new cF4SDHealthCardRawData.cHealthCardTableColumn();
if (!_table.Columns.ContainsKey(columnName))
_table.Columns[columnName] = new cF4SDHealthCardRawData.cHealthCardTableColumn(_table);
CachedHealthCardRawData[Id].Tables[tableOne].StartingIndex = 3;
CachedHealthCardRawData[Id].Tables[tableOne].IsIncomplete = true;
_table.StartingIndex = 3;
_table.IsIncomplete = true;
if (CachedHealthCardRawData[Id].Tables[tableOne].Columns[columnName].Values.Count < 3)
CachedHealthCardRawData[Id].Tables[tableOne].Columns[columnName].Values.AddRange(new List<object>() { 5, 4, 3, 2, 1, 0 });
if (_table.Columns[columnName].Values.Count < 3)
_table.Columns[columnName].Values.AddRange(new List<object>() { 5, 4, 3, 2, 1, 0 });
else
CachedHealthCardRawData[Id].Tables[tableOne].Columns[columnName].Values.InsertRange(3, new List<object>() { 5, 4, 3, 2, 1, 0 });
_table.Columns[columnName].Values.InsertRange(3, new List<object>() { 5, 4, 3, 2, 1, 0 });
}
await Task.Delay(250);
lock (CachedHealthCardRawData)
{
if (!CachedHealthCardRawData.ContainsKey(Id))
CachedHealthCardRawData[Id] = new cF4SDHealthCardRawData() { Id = Id, Tables = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTable>() };
if (!CachedHealthCardRawData.TryGetValue(Id, out var _rawData))
{
_rawData = new cF4SDHealthCardRawData() { Id = Id, Tables = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTable>() };
CachedHealthCardRawData[Id] = _rawData;
}
if (CachedHealthCardRawData[Id].Tables is null)
CachedHealthCardRawData[Id].Tables = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTable>();
if (_rawData.Tables is null)
_rawData.Tables = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTable>();
if (!CachedHealthCardRawData[Id].Tables.ContainsKey(tableTwo))
CachedHealthCardRawData[Id].Tables[tableTwo] = new cF4SDHealthCardRawData.cHealthCardTable() { Columns = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTableColumn>() };
if (!_rawData.Tables.TryGetValue(tableTwo, out var _table))
{
_table = new cF4SDHealthCardRawData.cHealthCardTable() { Name = tableTwo, Columns = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTableColumn>() };
_rawData.Tables[tableTwo] = _table;
}
if (!CachedHealthCardRawData[Id].Tables[tableTwo].Columns.ContainsKey(columnName))
CachedHealthCardRawData[Id].Tables[tableTwo].Columns[columnName] = new cF4SDHealthCardRawData.cHealthCardTableColumn();
if (!_table.Columns.ContainsKey(columnName))
_table.Columns[columnName] = new cF4SDHealthCardRawData.cHealthCardTableColumn(_table);
CachedHealthCardRawData[Id].Tables[tableTwo].StartingIndex = 2;
CachedHealthCardRawData[Id].Tables[tableTwo].IsIncomplete = true;
_table.StartingIndex = 2;
_table.IsIncomplete = true;
if (CachedHealthCardRawData[Id].Tables[tableTwo].Columns[columnName].Values.Count < 2)
CachedHealthCardRawData[Id].Tables[tableTwo].Columns[columnName].Values.AddRange(new List<object>() { 0, 3, 1, 2, 3, 8, 1, 0 });
if (_table.Columns[columnName].Values.Count < 2)
_table.Columns[columnName].Values.AddRange(new List<object>() { 0, 3, 1, 2, 3, 8, 1, 0 });
else
CachedHealthCardRawData[Id].Tables[tableTwo].Columns[columnName].Values.InsertRange(2, new List<object>() { 0, 3, 1, 2, 3, 8, 1, 0 });
_table.Columns[columnName].Values.InsertRange(2, new List<object>() { 0, 3, 1, 2, 3, 8, 1, 0 });
}
await Task.Delay(500);
@@ -1092,61 +1152,79 @@ namespace C4IT.FASD.Cockpit.Communication
const string numericalTable = "agnt-computer-event-numerical";
const string processorColumn = "ProcessorUsage";
if (!CachedHealthCardRawData.ContainsKey(Id))
CachedHealthCardRawData[Id] = new cF4SDHealthCardRawData() { Id = Id, Tables = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTable>() };
if (!CachedHealthCardRawData.TryGetValue(Id, out var _rawData))
{
_rawData = new cF4SDHealthCardRawData() { Id = Id, Tables = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTable>() };
CachedHealthCardRawData[Id] = _rawData;
}
if (CachedHealthCardRawData[Id].Tables is null)
CachedHealthCardRawData[Id].Tables = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTable>();
if (_rawData.Tables is null)
_rawData.Tables = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTable>();
if (!CachedHealthCardRawData[Id].Tables.ContainsKey(numericalTable))
CachedHealthCardRawData[Id].Tables[numericalTable] = new cF4SDHealthCardRawData.cHealthCardTable() { Columns = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTableColumn>() };
if (!_rawData.Tables.TryGetValue(numericalTable, out var _table))
{
_table = new cF4SDHealthCardRawData.cHealthCardTable() { Name = numericalTable, Columns = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTableColumn>() };
_rawData.Tables[numericalTable] = _table;
}
if (!CachedHealthCardRawData[Id].Tables[numericalTable].Columns.ContainsKey(processorColumn))
CachedHealthCardRawData[Id].Tables[numericalTable].Columns[processorColumn] = new cF4SDHealthCardRawData.cHealthCardTableColumn();
if (!_table.Columns.ContainsKey(processorColumn))
_table.Columns[processorColumn] = new cF4SDHealthCardRawData.cHealthCardTableColumn(_table);
CachedHealthCardRawData[Id].Tables[numericalTable].IsIncomplete = false;
CachedHealthCardRawData[Id].Tables[numericalTable].Columns[processorColumn].IsIncomplete = false;
CachedHealthCardRawData[Id].Tables[numericalTable].Columns[processorColumn].Values = new List<object>() { 12.0, 20.0, 18.0, 15.0, 18.0, 19.0, 20.0, 26.0, 17.0, 11.0, 18.0, 16.0, 16.0, 14.0, 15.0 };
_table.IsIncomplete = false;
_table.Columns[processorColumn].IsIncomplete = false;
_table.Columns[processorColumn].Values = new List<object>() { 12.0, 20.0, 18.0, 15.0, 18.0, 19.0, 20.0, 26.0, 17.0, 11.0, 18.0, 16.0, 16.0, 14.0, 15.0 };
}
await Task.Delay(250);
lock (CachedHealthCardRawData)
{
if (!CachedHealthCardRawData.ContainsKey(Id))
CachedHealthCardRawData[Id] = new cF4SDHealthCardRawData() { Id = Id, Tables = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTable>() };
if (!CachedHealthCardRawData.TryGetValue(Id, out var _rawData))
{
_rawData = new cF4SDHealthCardRawData() { Id = Id, Tables = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTable>() };
CachedHealthCardRawData[Id] = _rawData;
}
if (CachedHealthCardRawData[Id].Tables is null)
CachedHealthCardRawData[Id].Tables = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTable>();
if (_rawData.Tables is null)
_rawData.Tables = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTable>();
if (!CachedHealthCardRawData[Id].Tables.ContainsKey(tableOne))
CachedHealthCardRawData[Id].Tables[tableOne] = new cF4SDHealthCardRawData.cHealthCardTable() { Columns = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTableColumn>() };
if (!_rawData.Tables.TryGetValue(tableOne, out var _table))
{
_table = new cF4SDHealthCardRawData.cHealthCardTable() { Name = tableOne, Columns = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTableColumn>() };
_rawData.Tables[tableOne] = _table;
}
if (!CachedHealthCardRawData[Id].Tables[tableOne].Columns.ContainsKey(columnName))
CachedHealthCardRawData[Id].Tables[tableOne].Columns[columnName] = new cF4SDHealthCardRawData.cHealthCardTableColumn();
if (!_table.Columns.TryGetValue(columnName, out var _column))
{
_column = new cF4SDHealthCardRawData.cHealthCardTableColumn(_table);
_table.Columns[columnName] = _column;
}
CachedHealthCardRawData[Id].Tables[tableOne].StartingIndex = 0;
CachedHealthCardRawData[Id].Tables[tableOne].IsIncomplete = false;
_table.StartingIndex = 0;
_table.IsIncomplete = false;
if (CachedHealthCardRawData[Id].Tables[tableOne].Columns[columnName].Values.Count < 0)
CachedHealthCardRawData[Id].Tables[tableOne].Columns[columnName].Values.AddRange(new List<object>() { 8, 7, 6 });
if (_column.Values.Count < 0)
_column.Values.AddRange(new List<object>() { 8, 7, 6 });
else
CachedHealthCardRawData[Id].Tables[tableOne].Columns[columnName].Values.InsertRange(0, new List<object>() { 8, 7, 6 });
_column.Values.InsertRange(0, new List<object>() { 8, 7, 6 });
if (!CachedHealthCardRawData[Id].Tables.ContainsKey(tableTwo))
CachedHealthCardRawData[Id].Tables[tableTwo] = new cF4SDHealthCardRawData.cHealthCardTable() { Columns = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTableColumn>() };
if (!_rawData.Tables.TryGetValue(tableTwo, out var _table2))
{
_table2 = new cF4SDHealthCardRawData.cHealthCardTable() { Name = tableTwo, Columns = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTableColumn>() };
_rawData.Tables[tableTwo] = _table2;
}
if (!CachedHealthCardRawData[Id].Tables[tableTwo].Columns.ContainsKey(columnName))
CachedHealthCardRawData[Id].Tables[tableTwo].Columns[columnName] = new cF4SDHealthCardRawData.cHealthCardTableColumn();
if (!_rawData.Tables[tableTwo].Columns.ContainsKey(columnName))
CachedHealthCardRawData[Id].Tables[tableTwo].Columns[columnName] = new cF4SDHealthCardRawData.cHealthCardTableColumn(_table2);
CachedHealthCardRawData[Id].Tables[tableTwo].StartingIndex = 1;
CachedHealthCardRawData[Id].Tables[tableTwo].IsIncomplete = false;
_table2.StartingIndex = 1;
_table2.IsIncomplete = false;
if (CachedHealthCardRawData[Id].Tables[tableTwo].Columns[columnName].Values.Count < 1)
CachedHealthCardRawData[Id].Tables[tableTwo].Columns[columnName].Values.AddRange(new List<object>() { 1 });
if (_table2.Columns[columnName].Values.Count < 1)
_table2.Columns[columnName].Values.AddRange(new List<object>() { 1 });
else
CachedHealthCardRawData[Id].Tables[tableTwo].Columns[columnName].Values.InsertRange(1, new List<object>() { 1 });
_table2.Columns[columnName].Values.InsertRange(1, new List<object>() { 1 });
}

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.Logging.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.2" newVersion="10.0.0.2" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -43,25 +43,26 @@ namespace C4IT.FASD.Base
if (output.Tables.ContainsKey(table.Name))
continue;
var tableColumns = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTableColumn>();
foreach (var column in table.Columns)
{
if (tableColumns.ContainsKey(column.ColumnName))
continue;
var values = new List<object>();
values.AddRange(column.Values);
tableColumns.Add(column.ColumnName, new cF4SDHealthCardRawData.cHealthCardTableColumn() { ColumnName = column.ColumnName, Values = values });
}
output.Tables.Add(table.Name, new cF4SDHealthCardRawData.cHealthCardTable()
var outputTable = new cF4SDHealthCardRawData.cHealthCardTable()
{
Name = table.Name,
IsStatic = table.IsStatic,
TimeFrames = table.TimeFrames,
Columns = tableColumns
});
};
outputTable.Columns = new Dictionary<string, cF4SDHealthCardRawData.cHealthCardTableColumn>();
foreach (var column in table.Columns)
{
if (outputTable.Columns.ContainsKey(column.ColumnName))
continue;
var values = new List<object>();
values.AddRange(column.Values);
outputTable.Columns.Add(column.ColumnName, new cF4SDHealthCardRawData.cHealthCardTableColumn(outputTable) { ColumnName = column.ColumnName, Values = values });
}
output.Tables.Add(table.Name, outputTable);
}
}
catch (Exception E)

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="13.0.3" targetFramework="net472" />
<package id="Newtonsoft.Json" version="13.0.4" targetFramework="net472" />
</packages>