мультиклиентский репозиторий введен в эксплуатацию

This commit is contained in:
2025-02-18 17:50:15 +03:00
parent ec5d594e4a
commit e1a091e306
3 changed files with 7 additions and 5 deletions
@@ -6,11 +6,12 @@ namespace mROA.Implementation.Backend;
public class HubRequestExtractor : IInjectableModule public class HubRequestExtractor : IInjectableModule
{ {
private IConnectionHub _hub; private IConnectionHub _hub;
private IContextRepository? _contextRepository; private IContextRepository? _contextRepository;
private IMethodRepository? _methodRepository; private IMethodRepository? _methodRepository;
private ISerializationToolkit? _serializationToolkit; private ISerializationToolkit? _serializationToolkit;
private IExecuteModule? _executeModule; private IExecuteModule? _executeModule;
public void Inject<T>(T dependency) public void Inject<T>(T dependency)
{ {
switch (dependency) switch (dependency)
@@ -38,7 +39,10 @@ public class HubRequestExtractor : IInjectableModule
{ {
var extractor = new RequestExtractor(); var extractor = new RequestExtractor();
extractor.Inject(interaction); extractor.Inject(interaction);
extractor.Inject(_contextRepository); if (_contextRepository is IContextRepositoryHub contextHub)
extractor.Inject(contextHub.GetRepository(interaction.Id));
else
extractor.Inject(interaction);
extractor.Inject(_methodRepository); extractor.Inject(_methodRepository);
extractor.Inject(_serializationToolkit); extractor.Inject(_serializationToolkit);
extractor.Inject(_executeModule); extractor.Inject(_executeModule);
@@ -51,6 +51,6 @@ public class MultiClientContextRepository(Func<int, IContextRepository> produceR
public IContextRepository GetRepository(int clientId) public IContextRepository GetRepository(int clientId)
{ {
return _repositories[clientId]; return GetRepositoryByClientId(clientId);
} }
} }
@@ -50,8 +50,6 @@ public class RequestExtractor : IRequestExtractor
await Task.Yield(); await Task.Yield();
var multiClientOwnershipRepository = TransmissionConfig.OwnershipRepository as MultiClientOwnershipRepository; var multiClientOwnershipRepository = TransmissionConfig.OwnershipRepository as MultiClientOwnershipRepository;
multiClientOwnershipRepository?.RegisterOwnership(_representationModule.Id); multiClientOwnershipRepository?.RegisterOwnership(_representationModule.Id);
try try