using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.Core.Commands; using Tango.Integration.ExternalBridge; using Tango.PPC.Common; namespace Tango.PPC.Technician.ViewModels { public class RemoteConnectionsViewVM : PPCViewModel { public RelayCommand DisconnectCommand { get; set; } private ExternalBridgeReceiver _selectedReceiver; public ExternalBridgeReceiver SelectedReceiver { get { return _selectedReceiver; } set { if (value != null) { _selectedReceiver = value; InvalidateRelayCommands(); } } } public RemoteConnectionsViewVM() { DisconnectCommand = new RelayCommand(DisconnectReceiver, () => SelectedReceiver != null); } private async void DisconnectReceiver() { if (SelectedReceiver != null) { try { await Task.Factory.StartNew(() => { SelectedReceiver.Disconnect().Wait(); }); } catch (Exception ex) { LogManager.Log(ex, "Error disconnecting the specified receiver."); } finally { _selectedReceiver = null; RaisePropertyChanged(nameof(SelectedReceiver)); InvalidateRelayCommands(); } } } public override void OnApplicationStarted() { } } }