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:
@@ -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.
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user