1- using System . Text . Json ;
1+ using System . Text . Json ;
22using Certify . Client ;
33using Certify . Models ;
44using Certify . Models . Config ;
@@ -17,19 +17,25 @@ public partial class ManagementAPI
1717 {
1818 IInstanceManagementStateProvider _mgmtStateProvider ;
1919 IHubContext < InstanceManagementHub , IInstanceManagementHub > _mgmtHubContext ;
20- ICertifyInternalApiClient _backendAPIClient ;
20+ Certify . Management . ICertifyManager _certifyManager ;
2121
2222 /// <summary>
2323 /// Constructor for Management Hub API
2424 /// </summary>
2525 /// <param name="mgmtStateProvider"></param>
2626 /// <param name="mgmtHubContext"></param>
2727 /// <param name="backendAPIClient"></param>
28- public ManagementAPI ( IInstanceManagementStateProvider mgmtStateProvider , IHubContext < InstanceManagementHub , IInstanceManagementHub > mgmtHubContext , ICertifyInternalApiClient backendAPIClient )
28+ public ManagementAPI ( IInstanceManagementStateProvider mgmtStateProvider , IHubContext < InstanceManagementHub , IInstanceManagementHub > mgmtHubContext )
2929 {
3030 _mgmtStateProvider = mgmtStateProvider ;
3131 _mgmtHubContext = mgmtHubContext ;
32- _backendAPIClient = backendAPIClient ;
32+ }
33+
34+ public ManagementAPI ( IInstanceManagementStateProvider mgmtStateProvider , IHubContext < InstanceManagementHub , IInstanceManagementHub > mgmtHubContext , Certify . Management . ICertifyManager certifyManager )
35+ {
36+ _mgmtStateProvider = mgmtStateProvider ;
37+ _mgmtHubContext = mgmtHubContext ;
38+ _certifyManager = certifyManager ;
3339 }
3440
3541 private async Task < InstanceCommandResult ? > GetCommandResult ( string instanceId , InstanceCommandRequest cmd )
@@ -64,9 +70,20 @@ private async Task SendCommandWithNoResult(string instanceId, InstanceCommandReq
6470
6571 private async Task < T ? > PerformInstanceCommandTaskWithResult < T > ( string instanceId , KeyValuePair < string , string > [ ] args , string commandType )
6672 {
73+ InstanceCommandResult result ;
6774 var cmd = new InstanceCommandRequest ( commandType , args ) ;
6875
6976 var result = await GetCommandResult ( instanceId , cmd ) ;
77+ if ( _certifyManager != null && instanceId == _mgmtStateProvider . GetManagementHubInstanceId ( ) )
78+ {
79+ // get command result directly from in-process instance
80+ result = await _certifyManager . PerformDirectHubCommandWithResult ( cmd ) ;
81+ }
82+ else
83+ {
84+ // get command result via SignalR
85+ result = await GetCommandResult ( instanceId , cmd ) ;
86+ }
7087
7188 if ( result ? . Value != null )
7289 {
0 commit comments