Prepare Data History Provider 2.7 integration update

- modularize Citrix and agent integrations and add remote desktop endpoints
- extend ticket overview, ticket links, token validation, and staged relation handling
- update configuration, licensing, project, signing, and publish artifacts
This commit is contained in:
Meik
2026-07-20 09:31:52 +02:00
parent a3357e2a36
commit ccc48c521a
62 changed files with 5267 additions and 2521 deletions

View File

@@ -11,7 +11,7 @@ namespace C4IT_DataHistoryProvider_Base.Services
/// <summary>
/// Triggers search for relations to given information objects.
/// </summary>
cF4sdStagedSearchResultRelationTaskId StartGatheringRelatedObjects(IEnumerable<cFasdApiSearchResultEntry> relatedTo, int ageInDays);
Task<cF4sdStagedSearchResultRelationTaskId> StartGatheringRelatedObjects(IEnumerable<cFasdApiSearchResultEntry> relatedTo, int ageInDays);
/// <summary>
/// Used after triggering search for related objects in <see cref="StartGatheringRelatedObjects"/> to retrieve the already found relations.

View File

@@ -1,4 +1,5 @@
using C4IT.FASD.Base;
using C4IT.DataHistoryProvider;
using C4IT.FASD.Base;
using C4IT.Logging;
using C4IT_DataHistoryProvider_Base.DataSources;
using System;
@@ -16,13 +17,16 @@ namespace C4IT_DataHistoryProvider_Base.Services
private static readonly Dictionary<Guid, GatherRelatedObjectTask> _relationTasks = new Dictionary<Guid, GatherRelatedObjectTask>();
private readonly IEnumerable<ISearchResultRelationProvider> _providers;
private readonly cDataHistoryCollector _collector;
private static readonly System.Timers.Timer _relationTaskCleanupTimer = new System.Timers.Timer(CleanupInterval);
private const int CleanupInterval = 5 * 60 * 1000;
private readonly TimeSpan RelationTaskExpiration = TimeSpan.FromMinutes(15);
public StagedRelationService(IEnumerable<ISearchResultRelationProvider> providers)
public StagedRelationService(cDataHistoryCollector collector, IEnumerable<ISearchResultRelationProvider> providers)
{
_providers = providers;
_collector = collector;
SetupCleanupTimer();
}
@@ -36,7 +40,7 @@ namespace C4IT_DataHistoryProvider_Base.Services
_relationTaskCleanupTimer.Start();
}
public cF4sdStagedSearchResultRelationTaskId StartGatheringRelatedObjects(IEnumerable<cFasdApiSearchResultEntry> relatedTo, int age)
public async Task<cF4sdStagedSearchResultRelationTaskId> StartGatheringRelatedObjects(IEnumerable<cFasdApiSearchResultEntry> relatedTo, int age)
{
cF4sdStagedSearchResultRelationTaskId taskId = new cF4sdStagedSearchResultRelationTaskId();
try
@@ -49,12 +53,14 @@ namespace C4IT_DataHistoryProvider_Base.Services
List<cF4sdIdentityEntry> identities = relatedTo.Select(relation => new cF4sdIdentityEntry() { Id = relation.id, Class = relatedToInformationClass }).ToList();
var _ids = await _collector.getConnectorIdList(identities, CancellationToken.None, null, age);
foreach (var collectorModule in _providers)
{
taskId.PendingInformationClasses.UnionWith(collectorModule.GetSupportedInformationClasses());
Task<cF4sdStagedSearchResultRelations> task = Task.Run(() =>
collectorModule.GetRelationsAsync(identities, relatedToInformationClass, age, relationTask.TokenSource.Token));
collectorModule.GetRelationsAsync(_ids, relatedToInformationClass, age, relationTask.TokenSource.Token));
relationTask.RelatedObjectTasks.Add((collectorModule.GetSupportedInformationClasses(), task));
}