private void OnMainFormClosing(Object sender , FormClosingEventArgs e) { Timer.Stop(); if (m_ChangeNotificationObject != null) { TransactionObject transactionObject = m_RemoteAccessClient.ServiceProxy.BeginTransaction(); m_RemoteAccessClient.ServiceProxy.UnregisterForProfileChanges(transactionObject, m_ChangeNotificationObject, true); m_ChangeNotificationObject = null; } if (m_RemoteAccessClient != null) { m_RemoteAccessClient.Disconnect(); m_RemoteAccessClient.Dispose(); m_RemoteAccessClient = null; } }
private void OnGetAllIdsButtonClick(Object sender , EventArgs e) { if (m_RemoteAccessClient == null) { m_RemoteAccessClient = ScsServiceClientBuilder.CreateClient <IDVDProfilerRemoteAccess>(new ScsTcpEndPoint(IPAddressTextBox.Text, 10083)); m_RemoteAccessClient.Connect(); } ProfileIdListView.Items.Clear(); TransactionObject transactionObject = m_RemoteAccessClient.ServiceProxy.BeginTransaction(); if (m_ChangeNotificationObject == null) { AccessResult <ChangeNotificationObject> result = m_RemoteAccessClient.ServiceProxy.RegisterForProfileChanges(transactionObject, false); m_ChangeNotificationObject = result.Result; Timer.Interval = 5000; Timer.Tick += new EventHandler(OnTimer1Tick); } Timer.Stop(); try { AccessResult <List <String> > result = m_RemoteAccessClient.ServiceProxy.GetAllProfileIds(transactionObject, false); if (result.Success) { if (result.Result != null) { foreach (String profileId in result.Result) { ListViewItem item = new ListViewItem(); GetTitle(transactionObject, profileId, item); ProfileIdListView.Items.Add(item); } } m_RemoteAccessClient.ServiceProxy.CommitTransaction(transactionObject); } else { m_RemoteAccessClient.ServiceProxy.AbortTransaction(transactionObject); MessageBox.Show("An error occured", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } Timer.Start(); } catch (Exception ex) { try { m_RemoteAccessClient.ServiceProxy.AbortTransaction(transactionObject); } catch { } MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }