diff options
Diffstat (limited to 'Software/Visual_Studio/Tango.Integration/Services/ExternalBridgeClient.cs')
| -rw-r--r-- | Software/Visual_Studio/Tango.Integration/Services/ExternalBridgeClient.cs | 69 |
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; + } + } +} |
