aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Integration/ExternalBridge
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2020-01-25 21:23:35 +0200
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2020-01-25 21:23:35 +0200
commit2367c43d732aea2ea169f6fa5844fc877d96632d (patch)
treebbd6e675392d6721ad74449c897a87c698ac34b5 /Software/Visual_Studio/Tango.Integration/ExternalBridge
parent89e7bce0f7241e210aefc9d902e11c8f3537ace9 (diff)
downloadTango-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')
-rw-r--r--Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeReceiver.cs20
-rw-r--r--Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeSignalRClient.cs6
-rw-r--r--Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpClient.cs34
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;