/// <summary>Hit when we've completed connecting to the project. </summary>
        /// <param name="sender">ImportExporClient</param>
        /// <param name="e">Connection_ConnectToProjectCompletedEventArgs</param>
        private void wkfClient_Connection_ConnectToProjectCompleted(object sender, Connection_ConnectToProjectCompletedEventArgs e)
        {
            try
            {
                const string METHOD = CLASS + "wkfClient_Connection_ConnectToProjectCompleted()";
                Logger.LogTrace(METHOD + " ENTER.");

                this._clientNumRunning--;
                this.barLoadingIncident.Value++;

                if (sender is ImportExportClient)
                {
                    ImportExportClient client = sender as ImportExportClient;

                    if (!e.Cancelled)
                    {
                        if (e.Error == null && e.Result)
                        {
                            //Get the current status/type..
                            int intStatus = ((this._IncSelectedStatus.HasValue) ? this._IncSelectedStatus.Value : this._IncCurrentStatus.Value);
                            int intType   = ((this._IncSelectedType.HasValue) ? this._IncSelectedType.Value : this._IncCurrentType.Value);
                            //Get the current workflow fields here.
                            this._clientNumRunning += 2;
                            client.Incident_RetrieveWorkflowCustomPropertiesAsync(intType, intStatus, this._clientNum++);
                            client.Incident_RetrieveWorkflowFieldsAsync(intType, intStatus, this._clientNum++);
                        }
                        else
                        {
                            if (e.Error != null)
                            {
                                Logger.LogMessage(e.Error);
                            }
                            else
                            {
                                Logger.LogMessage(METHOD, "Could not log in.", System.Diagnostics.EventLogEntryType.Error);
                            }
                        }
                    }
                }

                Logger.LogTrace_ExitMethod(METHOD + "  Clients - Running: " + this._clientNumRunning.ToString() + ", Total: " + this._clientNum.ToString());
            }
            catch (Exception ex)
            {
                Logger.LogMessage(ex, "wkfClient_Connection_ConnectToProjectCompleted()");
                MessageBox.Show(StaticFuncs.getCultureResource.GetString("app_General_UnexpectedError"), StaticFuncs.getCultureResource.GetString("app_General_ApplicationShortName"), MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
        /// <summary>Hit after we connected to a project.</summary>
        /// <param name="sender">SoapServiceClient</param>
        /// <param name="e">Connection_ConnectToProjectCompletedEventArgs</param>
        private void client_Connection_ConnectToProjectCompleted(object sender, Connection_ConnectToProjectCompletedEventArgs e)
        {
            this.txtTesting.Text += ".";

            if (e.Error == null)
            {
                //We connected successfully. Create the fake user..
                RemoteUser tmpUser = new RemoteUser();
                tmpUser.Active       = true;
                tmpUser.Admin        = false;
                tmpUser.EmailAddress = "test@" + Common.APP_NAME.Replace(" ", ".") + ".com";
                tmpUser.FirstName    = "Test";
                tmpUser.LastName     = "User";
                tmpUser.UserName     = Common.APP_NAME.Replace(" ", ".") + ".test";

                ((SoapServiceClient)e.UserState).User_CreateAsync(tmpUser, this.txtDefaultPassword.Text, "1=1", "2", null, e.UserState);
            }
            else
            {
                Logger.LogError("", e.Error, "Testing new user password. Trying to connect to to Project");
                MessageBox.Show("Could not connect to an existing project. To test the password, there must be an existing project to connect you. You can continue without testing the password, but if the import fails you will need to re-run it.", "Error Testing", MessageBoxButton.OK, MessageBoxImage.Warning);
                this.divTesting.Visibility = System.Windows.Visibility.Collapsed;
            }
        }
Example #3
0
        /// <summary>Hit when we're finished connecting to the project.</summary>
        /// <param name="sender">ImportExportClient</param>
        /// <param name="e">Connection_ConnectToProjectCompletedEventArgs</param>
        private void clientSave_Connection_ConnectToProjectCompleted(object sender, Connection_ConnectToProjectCompletedEventArgs e)
        {
            const string METHOD = CLASS + "clientSave_Connection_ConnectToProjectCompleted()";

            Logger.LogTrace_EnterMethod(METHOD + "  " + this._clientNumSaving.ToString() + " clients running.");

            try
            {
                ImportExportClient client = (sender as ImportExportClient);
                this._clientNumSaving--;
                this.barSavingReq.Value++;

                if (!e.Cancelled)
                {
                    if (e.Error == null)
                    {
                        if (e.Result)
                        {
                            //Get the new RemoteIncident
                            RemoteRequirement newRequirement = this.save_GetFromFields();

                            if (newRequirement != null)
                            {
                                //Fire off our update calls.
                                this._clientNumSaving++;
                                client.Requirement_UpdateAsync(newRequirement, this._clientNum++);
                            }
                            else
                            {
                                //TODO: Show Error.
                                //Cancel calls.
                                this._clientNumSaving++;
                                client.Connection_DisconnectAsync(this._clientNum++);
                            }
                        }
                        else
                        {
                            //TODO: Show Error.
                            //Cancel calls.
                            this._clientNumSaving++;
                            client.Connection_DisconnectAsync(this._clientNum++);
                        }
                    }
                    else
                    {
                        //TODO: Show Error.
                        //Cancel calls.
                        this._clientNumSaving++;
                        client.Connection_DisconnectAsync(this._clientNum++);
                    }
                }

                //See if it's okay to reload.
                this.save_CheckIfOkayToLoad();
            }
            catch (Exception ex)
            {
                Logger.LogMessage(ex, METHOD);
                MessageBox.Show(StaticFuncs.getCultureResource.GetString("app_General_UnexpectedError"), StaticFuncs.getCultureResource.GetString("app_General_ApplicationShortName"), MessageBoxButton.OK, MessageBoxImage.Error);
            }
            Logger.LogTrace_ExitMethod(METHOD + "  " + this._clientNumSaving.ToString() + " clients left.");
        }
        /// <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);
            }
        }