@@ -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,19 @@ 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
69- var result = await GetCommandResult ( instanceId , cmd ) ;
76+ if ( _certifyManager != null && instanceId == _mgmtStateProvider . GetManagementHubInstanceId ( ) )
77+ {
78+ // get command result directly from in-process instance
79+ result = await _certifyManager . PerformDirectHubCommandWithResult ( cmd ) ;
80+ }
81+ else
82+ {
83+ // get command result via SignalR
84+ result = await GetCommandResult ( instanceId , cmd ) ;
85+ }
7086
7187 if ( result ? . Value != null )
7288 {
0 commit comments