diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-01-25 21:23:35 +0200 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-01-25 21:23:35 +0200 |
| commit | 2367c43d732aea2ea169f6fa5844fc877d96632d (patch) | |
| tree | bbd6e675392d6721ad74449c897a87c698ac34b5 /Software/Visual_Studio/Tango.Integration/ExternalBridge | |
| parent | 89e7bce0f7241e210aefc9d902e11c8f3537ace9 (diff) | |
| download | Tango-2367c43d732aea2ea169f6fa5844fc877d96632d.tar.gz Tango-2367c43d732aea2ea169f6fa5844fc877d96632d.zip | |
Implemented Hangfire experiment.
Refactored Transporter to accept a configuration instead of multiple parameters on all request/response methods.
Refactored Transporter to automatically log request/response messaged based on configuration.
Fixed issue with ContinuousResponseAborted and external bridge.
Diffstat (limited to 'Software/Visual_Studio/Tango.Integration/ExternalBridge')
3 files changed, 19 insertions, 41 deletions
diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeReceiver.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeReceiver.cs index fc00bd18e..2ca1b08f2 100644 --- a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeReceiver.cs +++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeReceiver.cs @@ -202,7 +202,7 @@ namespace Tango.Integration.ExternalBridge { if (IsLoggedIn) { - await SendRequest<ExternalBridgeLogoutRequest, ExternalBridgeLogoutResponse>(new ExternalBridgeLogoutRequest(), TimeSpan.FromSeconds(3)); + await SendRequest<ExternalBridgeLogoutRequest, ExternalBridgeLogoutResponse>(new ExternalBridgeLogoutRequest(), new TransportRequestConfig() { Timeout = TimeSpan.FromSeconds(3), ShouldLog = true }); } } catch (Exception ex) @@ -265,7 +265,7 @@ namespace Tango.Integration.ExternalBridge (reason) => { //Decline - SendResponse<ExternalBridgeLoginResponse>(new ExternalBridgeLoginResponse(), container.Token, false, ErrorCode.GeneralError, reason); + SendResponse<ExternalBridgeLoginResponse>(new ExternalBridgeLoginResponse(), container.Token, new TransportResponseConfig() { ErrorCode = ErrorCode.GeneralError, ErrorMessage = reason }); Disconnect().GetAwaiter().GetResult(); }); @@ -325,6 +325,10 @@ namespace Tango.Integration.ExternalBridge { SendResponse((ex as ResponseErrorException).Container); } + else if (ex is ContinuousResponseAbortedException) + { + SendResponse((ex as ContinuousResponseAbortedException).Container); + } } }); } @@ -372,7 +376,7 @@ namespace Tango.Integration.ExternalBridge if (_diagnosticsToken != null) { RequiresDiagnostics = false; - SendResponse<StartDiagnosticsResponse>(new StartDiagnosticsResponse(), _diagnosticsToken, true); + SendResponse<StartDiagnosticsResponse>(new StartDiagnosticsResponse(), _diagnosticsToken, new TransportResponseConfig() { Completed = true }); _diagnosticsToken = null; SendResponse<StopDiagnosticsResponse>(new StopDiagnosticsResponse(), container.Token); } @@ -390,7 +394,7 @@ namespace Tango.Integration.ExternalBridge if (_debugLogsToken != null) { RequiresDebugLogs = false; - SendResponse<StartDebugLogResponse>(new StartDebugLogResponse(), _debugLogsToken, true); + SendResponse<StartDebugLogResponse>(new StartDebugLogResponse(), _debugLogsToken, new TransportResponseConfig() { Completed = true }); _debugLogsToken = null; SendResponse<StopDebugLogResponse>(new StopDebugLogResponse(), container.Token); } @@ -408,7 +412,7 @@ namespace Tango.Integration.ExternalBridge if (_eventsToken != null) { RequiresEventsNotification = false; - SendResponse<StartEventsNotificationResponse>(new StartEventsNotificationResponse(), _eventsToken, true); + SendResponse<StartEventsNotificationResponse>(new StartEventsNotificationResponse(), _eventsToken, new TransportResponseConfig() { Completed = true }); _eventsToken = null; SendResponse<StopEventsNotificationResponse>(new StopEventsNotificationResponse(), container.Token); } @@ -426,7 +430,7 @@ namespace Tango.Integration.ExternalBridge if (_machineStatusToken != null) { RequiresMachineStatusUpdate = false; - SendResponse<StartMachineStatusUpdateResponse>(new StartMachineStatusUpdateResponse(), _machineStatusToken, true); + SendResponse<StartMachineStatusUpdateResponse>(new StartMachineStatusUpdateResponse(), _machineStatusToken, new TransportResponseConfig() { Completed = true }); _machineStatusToken = null; SendResponse<StopMachineStatusUpdateResponse>(new StopMachineStatusUpdateResponse(), container.Token); } @@ -444,7 +448,7 @@ namespace Tango.Integration.ExternalBridge if (_applicationLogsToken != null) { RequiresApplicationLogs = false; - SendResponse<StartApplicationLogsResponse>(new StartApplicationLogsResponse(), _applicationLogsToken, true); + SendResponse<StartApplicationLogsResponse>(new StartApplicationLogsResponse(), _applicationLogsToken, new TransportResponseConfig() { Completed = true }); _applicationLogsToken = null; SendResponse<StopApplicationLogsResponse>(new StopApplicationLogsResponse(), container.Token); } @@ -468,7 +472,7 @@ namespace Tango.Integration.ExternalBridge protected virtual void OnStartPowerDownRequest(MessageContainer container) { - SendResponse(new StartPowerDownResponse() { }, container.Token, false, ErrorCode.ContinuousResponseAborted, "Power down request is not supported via external bridge."); + SendResponse(new StartPowerDownResponse() { }, container.Token, new TransportResponseConfig() { ErrorCode = ErrorCode.ContinuousResponseAborted, ErrorMessage = "Power down request is not supported via external bridge." }); } #endregion diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeSignalRClient.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeSignalRClient.cs index e2aae9eb8..dc1bd1203 100644 --- a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeSignalRClient.cs +++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeSignalRClient.cs @@ -43,10 +43,7 @@ namespace Tango.Integration.ExternalBridge LogManager.Log("External Bridge SignalR Client Connected..."); - - LogRequestSent(login); - - var response = await SendRequest<ExternalBridgeLoginRequest, ExternalBridgeLoginResponse>(login); + var response = await SendRequest<ExternalBridgeLoginRequest, ExternalBridgeLoginResponse>(login, new TransportRequestConfig() { ShouldLog = true }); SessionLogger.CreateSession(); @@ -59,7 +56,6 @@ namespace Tango.Integration.ExternalBridge } catch (Exception ex) { - LogRequestFailed(login, ex); try { await Adapter.Disconnect(); diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpClient.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpClient.cs index f050708d7..df6a4cc01 100644 --- a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpClient.cs +++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpClient.cs @@ -104,10 +104,7 @@ namespace Tango.Integration.ExternalBridge LogManager.Log("External Bridge TCP Client Connected..."); - - LogRequestSent(login); - - var response = await SendRequest<ExternalBridgeLoginRequest, ExternalBridgeLoginResponse>(login); + var response = await SendRequest<ExternalBridgeLoginRequest, ExternalBridgeLoginResponse>(login, new TransportRequestConfig() { ShouldLog = true }); SessionLogger.CreateSession(); @@ -120,7 +117,6 @@ namespace Tango.Integration.ExternalBridge } catch (Exception ex) { - LogRequestFailed(login, ex); try { await Adapter.Disconnect(); @@ -149,14 +145,13 @@ namespace Tango.Integration.ExternalBridge bool responseLogged = false; _logs_sent = true; - SendContinuousRequest<StartApplicationLogsRequest, StartApplicationLogsResponse>(request).ObserveOn(new NewThreadScheduler()) + SendContinuousRequest<StartApplicationLogsRequest, StartApplicationLogsResponse>(request, new TransportContinuousRequestConfig() { ShouldLog = true }).ObserveOn(new NewThreadScheduler()) .Subscribe ( (response) => { if (!responseLogged) { - LogResponseReceived(response.Message); responseLogged = true; } @@ -165,18 +160,11 @@ namespace Tango.Integration.ExternalBridge (ex) => { _logs_sent = false; - - if (!(ex is ContinuousResponseAbortedException)) - { - LogRequestFailed(request, ex); - } }, () => { _logs_sent = false; }); - - LogRequestSent(request); } else if (_logs_sent) { @@ -188,14 +176,9 @@ namespace Tango.Integration.ExternalBridge try { - LogRequestSent(req); - var res = await SendRequest<StopApplicationLogsRequest, StopApplicationLogsResponse>(req); - LogResponseReceived(res.Message); - } - catch (Exception ex) - { - LogRequestFailed(req, ex); + var res = await SendRequest<StopApplicationLogsRequest, StopApplicationLogsResponse>(req, new TransportRequestConfig() { ShouldLog = true }); } + catch { } } } } @@ -222,19 +205,14 @@ namespace Tango.Integration.ExternalBridge if (State == TransportComponentState.Connected) { ExternalBridgeLogoutRequest request = new ExternalBridgeLogoutRequest(); - LogRequestSent(request); try { - var response = await SendRequest<ExternalBridgeLogoutRequest, ExternalBridgeLogoutResponse>(request); - LogResponseReceived(response.Message); + var response = await SendRequest<ExternalBridgeLogoutRequest, ExternalBridgeLogoutResponse>(request, new TransportRequestConfig() { ShouldLog = true }); Status = MachineStatuses.Standby; } - catch (Exception ex) - { - LogRequestFailed(request, ex); - } + catch { } } State = TransportComponentState.Disconnected; |
