/// <summary>Hit when the client is finished connecting and logging in.</summary> /// <param name="sender">The client that called it.</param> /// <param name="e">Event Args.</param> private void client_FinishConnecting(object sender, EventArgs e) { try { ImportExport client = (ImportExport)sender; string eType = e.GetType().ToString(); eType = eType.Substring(eType.LastIndexOf('.') + 1); switch (eType) { case "Connection_Authenticate2CompletedEventArgs": { //Connect finished. Connection_Authenticate2CompletedEventArgs evt = (Connection_Authenticate2CompletedEventArgs)e; ObjectState evtObj = (ObjectState)evt.UserState; if (evt.Error == null) { client.System_GetProductVersionAsync(evtObj); } else { //Set error to node. TreeViewItem oldNode = (TreeViewItem)this.trvProject.Items[evtObj.NodeNumber]; this.trvProject.Items.RemoveAt(evtObj.NodeNumber); this.trvProject.Items.Insert(evtObj.NodeNumber, this.changeNodeImage(oldNode, "imgError")); ((TreeViewItem)this.trvProject.Items[evtObj.NodeNumber]).ToolTip = new TextBlock() { Text = evt.Error.Message }; ((TreeViewItem)this.trvProject.Items[evtObj.NodeNumber]).Items.Clear(); //Error, clean up. removeClient(client); } } break; case "System_GetProductVersionCompletedEventArgs": { //Connect finished. System_GetProductVersionCompletedEventArgs evt = (System_GetProductVersionCompletedEventArgs)e; ObjectState evtObj = (ObjectState)evt.UserState; if (evt.Error == null) { evtObj.ClientVersion = evt.Result; client.Connection_ConnectToProjectAsync(evtObj.Project.ProjectID, evtObj); } else { //Set error to node. TreeViewItem oldNode = (TreeViewItem)this.trvProject.Items[evtObj.NodeNumber]; this.trvProject.Items.RemoveAt(evtObj.NodeNumber); this.trvProject.Items.Insert(evtObj.NodeNumber, this.changeNodeImage(oldNode, "imgError")); ((TreeViewItem)this.trvProject.Items[evtObj.NodeNumber]).ToolTip = new TextBlock() { Text = evt.Error.Message }; ((TreeViewItem)this.trvProject.Items[evtObj.NodeNumber]).Items.Clear(); //Error, clean up. removeClient(client); } } break; case "Connection_ConnectToProjectCompletedEventArgs": { //Connect finished. Connection_ConnectToProjectCompletedEventArgs evt = (Connection_ConnectToProjectCompletedEventArgs)e; ObjectState evtObj = (ObjectState)evt.UserState; if (evt.Error == null) { evtObj.curSearchIsMine = true; RemoteFilter[] filters = GenerateFilter(evtObj.Project.UserID, this.btnShowClosed.IsChecked.Value, "IN"); RemoteSort sort = GenerateSort(); client.Incident_RetrieveAsync(filters, sort, 1, 9999999, evtObj); } else { //Set error to node. TreeViewItem oldNode = (TreeViewItem)this.trvProject.Items[evtObj.NodeNumber]; this.trvProject.Items.RemoveAt(evtObj.NodeNumber); this.trvProject.Items.Insert(evtObj.NodeNumber, this.changeNodeImage(oldNode, "imgError")); ((TreeViewItem)this.trvProject.Items[evtObj.NodeNumber]).ToolTip = new TextBlock() { Text = evt.Error.Message }; ((TreeViewItem)this.trvProject.Items[evtObj.NodeNumber]).Items.Clear(); //Error, clean up. removeClient(client); } } break; } } catch (Exception ex) { Connect.logEventMessage("wpfProjectTree::client_FinishConnecting", ex, System.Diagnostics.EventLogEntryType.Error); } }