aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Integration/Services/ExternalBridgeClient.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/Tango.Integration/Services/ExternalBridgeClient.cs')
-rw-r--r--Software/Visual_Studio/Tango.Integration/Services/ExternalBridgeClient.cs69
1 files changed, 69 insertions, 0 deletions
diff --git a/Software/Visual_Studio/Tango.Integration/Services/ExternalBridgeClient.cs b/Software/Visual_Studio/Tango.Integration/Services/ExternalBridgeClient.cs
new file mode 100644
index 000000000..cdc176d73
--- /dev/null
+++ b/Software/Visual_Studio/Tango.Integration/Services/ExternalBridgeClient.cs
@@ -0,0 +1,69 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.DAL.Observables;
+using Tango.PMR.Integration;
+using Tango.Settings;
+using Tango.Transport;
+using Tango.Transport.Adapters;
+using Tango.Transport.Transporters;
+
+namespace Tango.Integration.Services
+{
+ public class ExternalBridgeClient : ProtoTransporter, IExternalBridgeClient
+ {
+ private String _serialNumber;
+
+ public String SerialNumber
+ {
+ get { return _serialNumber; }
+ internal set
+ {
+ _serialNumber = value;
+ RaisePropertyChangedAuto();
+
+ var org = ObservablesEntitiesAdapter.Instance.Organizations.SingleOrDefault(x => x.Machines.ToList().Exists(y => y.SerialNumber == SerialNumber));
+ Organization = org != null ? org.Name : "Unknown";
+ }
+ }
+
+ private String _ipAddress;
+
+ public String IPAddress
+ {
+ get { return _ipAddress; }
+ set { _ipAddress = value; RaisePropertyChangedAuto(); }
+ }
+
+ private String _organization;
+
+ public String Organization
+ {
+ get { return _organization; }
+ private set { _organization = value; RaisePropertyChangedAuto(); }
+ }
+
+ public override async Task Connect()
+ {
+ await Disconnect();
+ Adapters.Clear();
+ Adapters.Add(new TcpTransportAdapter(IPAddress, SettingsManager.Default.Integration.ExternalBridgeServicePort));
+ await base.Connect();
+ }
+
+ public async Task<bool> Authenticate(String password)
+ {
+ var response = await SendRequest<ExternalClientLoginRequest, ExternalClientLoginResponse>(new ExternalClientLoginRequest() { Password = password });
+ return response.Message.Authenticated;
+ }
+
+ public ExternalBridgeClient(String serialNumber,String ipAddress)
+ {
+ SerialNumber = serialNumber;
+ IPAddress = ipAddress;
+ UseKeepAlive = true;
+ }
+ }
+}