private void LoadItem_Task()
        {
            try
            {
                this._isInLoadMode = true;

                //Set up the client.
                this._Client = new Inflectra.SpiraTest.IDEIntegration.VisualStudio.Spira_ImportExport.ImportExport();
                this._Client.CookieContainer = new System.Net.CookieContainer();
                this._Client.Url             = this._Project.ServerURL + Connect.SpiraProject.URL_APIADD;

                //Set new event handlers.
                this._Client.Connection_Authenticate2Completed       += new Inflectra.SpiraTest.IDEIntegration.VisualStudio.Spira_ImportExport.Connection_Authenticate2CompletedEventHandler(LoadItem_Task1);
                this._Client.Connection_ConnectToProjectCompleted    += new Inflectra.SpiraTest.IDEIntegration.VisualStudio.Spira_ImportExport.Connection_ConnectToProjectCompletedEventHandler(LoadItem_Task2);
                this._Client.Task_RetrieveByIdCompleted              += new Inflectra.SpiraTest.IDEIntegration.VisualStudio.Spira_ImportExport.Task_RetrieveByIdCompletedEventHandler(LoadItem_Task3);
                this._Client.Release_RetrieveCompleted               += new Inflectra.SpiraTest.IDEIntegration.VisualStudio.Spira_ImportExport.Release_RetrieveCompletedEventHandler(LoadItem_Task3);
                this._Client.Requirement_RetrieveCompleted           += new Inflectra.SpiraTest.IDEIntegration.VisualStudio.Spira_ImportExport.Requirement_RetrieveCompletedEventHandler(LoadItem_Task3);
                this._Client.Project_RetrieveUserMembershipCompleted += new Inflectra.SpiraTest.IDEIntegration.VisualStudio.Spira_ImportExport.Project_RetrieveUserMembershipCompletedEventHandler(LoadItem_Task3);
                this._Client.Task_UpdateCompleted += new Inflectra.SpiraTest.IDEIntegration.VisualStudio.Spira_ImportExport.Task_UpdateCompletedEventHandler(_Client_Task_UpdateCompleted);

                string[] token = this._ItemTag.Split(':');
                if (token.Length == 2)
                {
                    int artNum = -1;
                    if (int.TryParse(token[1], out artNum))
                    {
                        this._Client.Connection_Authenticate2Async(this._Project.UserName, this._Project.UserPass, this._resources.GetString("strAddinProgNamePretty"), this._NumCount++);
                    }
                }
            }
            catch (Exception ex)
            {
                Connect.logEventMessage("wpfDetailsTask::LoadItem_Task", ex, System.Diagnostics.EventLogEntryType.Error);
            }
        }
        private void loadItem_Incident()
        {
            try
            {
                this.isInLoadMode = true;
                //Set up the client here.
                this._Client                 = new Inflectra.SpiraTest.IDEIntegration.VisualStudio.Spira_ImportExport.ImportExport();
                this._Client.Url             = this._Project.ServerURL + Connect.SpiraProject.URL_APIADD;
                this._Client.CookieContainer = new System.Net.CookieContainer();

                //Set all event handlers.
                this._Client.Connection_Authenticate2Completed             += new Inflectra.SpiraTest.IDEIntegration.VisualStudio.Spira_ImportExport.Connection_Authenticate2CompletedEventHandler(loadItem_Incident_2);
                this._Client.Connection_ConnectToProjectCompleted          += new Inflectra.SpiraTest.IDEIntegration.VisualStudio.Spira_ImportExport.Connection_ConnectToProjectCompletedEventHandler(loadItem_Incident_3);
                this._Client.Incident_RetrieveByIdCompleted                += new Spira_ImportExport.Incident_RetrieveByIdCompletedEventHandler(loadItem_Incident_4);
                this._Client.Project_RetrieveUserMembershipCompleted       += new Spira_ImportExport.Project_RetrieveUserMembershipCompletedEventHandler(loadItem_Incident_4);
                this._Client.Incident_RetrieveWorkflowFieldsCompleted      += new Spira_ImportExport.Incident_RetrieveWorkflowFieldsCompletedEventHandler(loadItem_Incident_4);
                this._Client.Incident_RetrieveWorkflowTransitionsCompleted += new Spira_ImportExport.Incident_RetrieveWorkflowTransitionsCompletedEventHandler(loadItem_Incident_4);
                this._Client.Release_RetrieveCompleted             += new Spira_ImportExport.Release_RetrieveCompletedEventHandler(loadItem_Incident_4);
                this._Client.Incident_RetrievePrioritiesCompleted  += new Spira_ImportExport.Incident_RetrievePrioritiesCompletedEventHandler(loadItem_Incident_4);
                this._Client.Incident_RetrieveSeveritiesCompleted  += new Spira_ImportExport.Incident_RetrieveSeveritiesCompletedEventHandler(loadItem_Incident_4);
                this._Client.Incident_RetrieveTypesCompleted       += new Inflectra.SpiraTest.IDEIntegration.VisualStudio.Spira_ImportExport.Incident_RetrieveTypesCompletedEventHandler(loadItem_Incident_4);
                this._Client.Incident_RetrieveStatusesCompleted    += new Inflectra.SpiraTest.IDEIntegration.VisualStudio.Spira_ImportExport.Incident_RetrieveStatusesCompletedEventHandler(loadItem_Incident_4);
                this._Client.Incident_RetrieveResolutionsCompleted += new Inflectra.SpiraTest.IDEIntegration.VisualStudio.Spira_ImportExport.Incident_RetrieveResolutionsCompletedEventHandler(loadItem_Incident_4);
                this._Client.Incident_UpdateCompleted         += new Inflectra.SpiraTest.IDEIntegration.VisualStudio.Spira_ImportExport.Incident_UpdateCompletedEventHandler(_Client_Incident_UpdateCompleted);
                this._Client.Incident_AddResolutionsCompleted += new Inflectra.SpiraTest.IDEIntegration.VisualStudio.Spira_ImportExport.Incident_AddResolutionsCompletedEventHandler(_Client_Incident_UpdateCompleted);

                string[] token = this._itemCode.Split(':');
                if (token.Length == 2)
                {
                    int artNum = -1;
                    if (int.TryParse(token[1], out artNum))
                    {
                        this._Client.Connection_Authenticate2Async(this._Project.UserName, this._Project.UserPass, this._resources.GetString("strAddinProgNamePretty"), this._NumAsync++);
                    }
                }
            }
            catch (Exception ex)
            {
                Connect.logEventMessage("wpfDetailsIncident::loadItem_Incident", ex, System.Diagnostics.EventLogEntryType.Error);
            }
        }
        private void LoadItem_VerifyVersion(Spira_ImportExport.ImportExport client)
        {
            try
            {
                //Get the version number and disable any items necessary.
                Spira_ImportExport.RemoteVersion version = client.System_GetProductVersion();
                string[] mainVers = version.Version.Split('.');
                int      verMain  = int.Parse(mainVers[0]);
                int      verRev   = int.Parse(mainVers[1]);
                int      verBuild = int.Parse(mainVers[2]);

                bool enableCustom        = false;
                bool enableHistory       = false;
                bool showWorkflowMessage = false;

                if (verMain > 2)
                {
                    enableCustom = true;
                }
                else
                {
                    if (verMain == 2)
                    {
                        if (verRev >= 3)
                        {
                            if (verBuild >= 1)
                            {
                                if (version.Patch.HasValue && version.Patch < 17)
                                {
                                    showWorkflowMessage = true;
                                }
                            }
                            else
                            {
                                showWorkflowMessage = true;
                            }
                        }
                        else
                        {
                            showWorkflowMessage = true;
                        }
                    }
                    else
                    {
                        showWorkflowMessage = true;
                    }
                }

                if (showWorkflowMessage)
                {
                    this.panelWarning.Visibility = Visibility.Visible;
                    this.panelNone.Visibility    = Visibility.Collapsed;
                    this.msgWrnMessage.Text      = "Application version is less than 2.3.1(17). Owner of the Task cannot be changed.";
                    this._hasProjUsers           = false;
                }
                else
                {
                    this._hasProjUsers = true;
                }
            }
            catch (Exception ex)
            {
                Connect.logEventMessage("wpfDetailsTask::LoadItem_VerifyVersion", ex, System.Diagnostics.EventLogEntryType.Error);
            }
        }
        private void loadItem_VerifyVersion(Spira_ImportExport.ImportExport client)
        {
            try
            {
                //Get the version number and disable any items necessary.
                Spira_ImportExport.RemoteVersion version = client.System_GetProductVersion();
                string[] mainVers = version.Version.Split('.');
                int      verMain  = int.Parse(mainVers[0]);
                int      verRev   = int.Parse(mainVers[1]);
                int      verBuild = int.Parse(mainVers[2]);

                bool enableCustom        = false;
                bool enableHistory       = false;
                bool showWorkflowMessage = false;

                if (verMain > 2)
                {
                    enableCustom = true;
                }
                else
                {
                    if (verMain == 2)
                    {
                        if (verRev >= 3)
                        {
                            if (verBuild >= 1)
                            {
                                if (version.Patch.HasValue && version.Patch < 17)
                                {
                                    showWorkflowMessage = true;
                                }
                            }
                            else
                            {
                                showWorkflowMessage = true;
                            }
                        }
                        else
                        {
                            showWorkflowMessage = true;
                        }
                    }
                    else
                    {
                        showWorkflowMessage = true;
                    }
                }

                if (showWorkflowMessage)
                {
                    this.panelWarning.Visibility = Visibility.Visible;
                    this.panelNone.Visibility    = Visibility.Collapsed;
                    this.msgWrnMessage.Text      = "Application version is less than 2.3.1(17) and remote workflows are not supported. Incident is read-only.";
                    this.hasWorkFlow_Avail       = false;
                }
                else
                {
                    this.hasWorkFlow_Avail = true;
                }

                this.cntrlTabCustProps.Visibility = ((enableCustom) ? Visibility.Visible : Visibility.Collapsed);
                this.cntrlTabHistory.Visibility   = ((enableHistory) ? Visibility.Visible : Visibility.Collapsed);
            }
            catch (Exception ex)
            {
                Connect.logEventMessage("wpfDetailsIncident::loadItem_VerifyVersion", ex, System.Diagnostics.EventLogEntryType.Error);
            }
        }
        private void loadItem_PopulateUser(ComboBox box, int?SelectedUserID, string SelectedUserName, Spira_ImportExport.ImportExport client)
        {
            try
            {
                //Clear and add our 'none'.
                box.Items.Clear();
                int def = box.Items.Add(new ComboBoxItem()
                {
                    Content = "-- None --"
                });
                box.SelectedIndex = def;

                if (!SelectedUserID.HasValue)
                {
                    SelectedUserID = -1;
                }

                //Load the project users.
                if (this.hasWorkFlow_Avail)
                {
                    foreach (Spira_ImportExport.RemoteProjectUser projUser in this._ProjUsers)
                    {
                        int numAdded = box.Items.Add(client.User_RetrieveById(projUser.UserId));
                        if (projUser.UserId == SelectedUserID)
                        {
                            box.SelectedIndex = numAdded;
                        }
                    }
                }
                else
                {
                    int numAdded = box.Items.Add(SelectedUserName);
                    box.SelectedIndex = numAdded;
                }
            }
            catch (Exception ex)
            {
                Connect.logEventMessage("wpfDetailsIncident::loadItem_PopulateUser", ex, System.Diagnostics.EventLogEntryType.Error);
            }
        }