Esempio n. 1
0
        /// <summary>Hit when the user wants to merge their changes with the concurrent task.</summary>
        /// <param name="sender">btnConcurrencyMergeYes</param>
        /// <param name="e">RoutedEventArgs</param>
        private void btnConcurrencyMergeYes_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                e.Handled = true;
                //Get the client.
                ImportExportClient client = ((dynamic)sender).Tag as ImportExportClient;
                if (client != null)
                {
                    //Switch screens again...
                    this.display_SetOverlayWindow(this.panelSaving, System.Windows.Visibility.Visible);
                    this.display_SetOverlayWindow(this.panelError, System.Windows.Visibility.Hidden);
                    this.barSavingReq.Value--;

                    //Re-launch the saving..
                    RemoteRequirement reqMerged = StaticFuncs.MergeWithConcurrency(this.save_GetFromFields(), this._Requirement, this._RequirementConcurrent);

                    this._clientNumSaving++;
                    client.Requirement_UpdateAsync(reqMerged, this._clientNum++);
                }
            }
            catch (Exception ex)
            {
                Logger.LogMessage(ex, "btnConcurrencyMergeYes_Click()");
                MessageBox.Show(StaticFuncs.getCultureResource.GetString("app_General_UnexpectedError"), StaticFuncs.getCultureResource.GetString("app_General_ApplicationShortName"), MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
        /// <summary>Creates a new instance of the control.</summary>
        public cntlTTipIncident(TreeViewArtifact dataItem)
        {
            //Initialize.
            InitializeComponent();

            //Load the item's data.
            this.DataItem = dataItem;

            //Set images.
            this.imgProject.Source  = StaticFuncs.getImage("imgProject", new System.Windows.Size(16, 16)).Source;
            this.imgIncident.Source = StaticFuncs.getImage("imgIncident", new System.Windows.Size(16, 16)).Source;
            this.imgRelease.Source  = StaticFuncs.getImage("imgRelease", new System.Windows.Size(16, 16)).Source;
            //Set strings.
            this.txtItemId.Text     = StaticFuncs.getCultureResource.GetString("app_Incident_Id") + ":";
            this.txtProject.Text    = StaticFuncs.getCultureResource.GetString("app_Project") + ":";
            this.txtOwner.Text      = StaticFuncs.getCultureResource.GetString("app_General_Owner") + ":";
            this.txtStatusType.Text = StaticFuncs.getCultureResource.GetString("app_Incident_StatusType") + ":";
            this.txtEstimate.Text   = StaticFuncs.getCultureResource.GetString("app_General_EstEffort") + ":";
            this.txtProjected.Text  = StaticFuncs.getCultureResource.GetString("app_General_ProjEffort") + ":";
            this.txtPriority.Text   = StaticFuncs.getCultureResource.GetString("app_General_Priority") + ":";
            this.txtSeverity.Text   = StaticFuncs.getCultureResource.GetString("app_Incident_Severity") + ":";
            this.txtDetected.Text   = StaticFuncs.getCultureResource.GetString("app_Incident_DetectedRelease") + ":";
            this.txtResolved.Text   = StaticFuncs.getCultureResource.GetString("app_Incident_ResolvedRelease") + ":";
            this.txtVerified.Text   = StaticFuncs.getCultureResource.GetString("app_Incident_VerifiedRelease") + ":";
        }
 public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
 {
     if (!(value is TimeSpan source))
     {
         return("Wrong type.");
     }
     return(StaticFuncs.GetTimeRest(source));
 }
        /// <summary>Hit when the user user clicks the Connect button.</summary>
        /// <param name="sender">btnConnect</param>
        /// <param name="e">RoutedEventArgs</param>
        private void btnConnect_Click(object sender, RoutedEventArgs e)
        {
            if (e != null)
            {
                e.Handled = true;
            }

            try
            {
                bool tag = (bool)this.btnConnect.Tag;
                if (tag)
                {
                    this._client = null;

                    //Set form.
                    this.grdEntry.IsEnabled      = true;
                    this.barProg.IsIndeterminate = false;
                    this.barProg.Value           = 0;
                    this.btnConnect.Content      = "_Get Projects";
                    this.btnConnect.Tag          = false;
                    this.txtStatus.Text          = "";
                    this.txtStatus.ToolTip       = null;
                }
                else
                {
                    if (this.txbServer.Text.ToLowerInvariant().EndsWith(".asmx") || this.txbServer.Text.ToLowerInvariant().EndsWith(".aspx") || this.txbServer.Text.ToLowerInvariant().EndsWith(".svc"))
                    {
                        MessageBox.Show(StaticFuncs.getCultureResource.GetString("app_NewProject_URLErrorMessage"), StaticFuncs.getCultureResource.GetString("app_NewProject_URLError"), MessageBoxButton.OK, MessageBoxImage.Exclamation);
                    }
                    else
                    {
                        //Start the connections.
                        this.barProg.IsIndeterminate = true;
                        this.barProg.Foreground      = (Brush) new System.Windows.Media.BrushConverter().ConvertFrom(StaticFuncs.getCultureResource.GetString("app_Colors_StyledBarColor"));
                        this.grdEntry.IsEnabled      = false;
                        this.btnConnect.Content      = "_Cancel";
                        this.btnConnect.Tag          = true;
                        this.txtStatus.Text          = "Connecting to server...";
                        this.cmbProjectList.Items.Clear();
                        this.grdAvailProjs.IsEnabled = false;

                        //Create new client.
                        this._client = StaticFuncs.CreateClient(this.txbServer.Text.Trim());
                        this._client.Connection_Authenticate2Completed += new EventHandler <Connection_Authenticate2CompletedEventArgs>(_client_CommunicationFinished);
                        this._client.User_RetrieveByUserNameCompleted  += new EventHandler <User_RetrieveByUserNameCompletedEventArgs>(_client_CommunicationFinished);
                        this._client.Project_RetrieveCompleted         += new EventHandler <Project_RetrieveCompletedEventArgs>(_client_CommunicationFinished);

                        this._client.Connection_Authenticate2Async(this.txbUserID.Text, this.txbUserPass.Password, StaticFuncs.getCultureResource.GetString("app_ReportName"));
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.LogMessage(ex, "btnConnect_Click()");
                MessageBox.Show(StaticFuncs.getCultureResource.GetString("app_General_UnexpectedError"), StaticFuncs.getCultureResource.GetString("app_General_ApplicationShortName"), MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
        /// <summary>Copies over our values from the form into an Incident object.</summary>
        /// <returns>A new RemoteIncident, or Null if error.</returns>
        private RemoteTask save_GetFromFields()
        {
            const string METHOD = CLASS + "save_GetFromFields()";

            RemoteTask retTask = null;

            try
            {
                retTask = new RemoteTask();

                //Standard fields..
                retTask.TaskId          = this._Task.TaskId;
                retTask.ProjectId       = this._Task.ProjectId;
                retTask.ConcurrencyDate = this._Task.ConcurrencyDate;
                retTask.CreationDate    = this._Task.CreationDate.ToUniversalTime();
                retTask.LastUpdateDate  = this._Task.LastUpdateDate.ToUniversalTime();
                retTask.RequirementId   = this._Task.RequirementId;
                retTask.Name            = this.cntrlTaskName.Text.Trim();
                retTask.TaskPriorityId  = ((TaskPriority)this.cntrlPriority.SelectedValue).PriorityId;
                retTask.CreatorId       = ((RemoteUser)this.cntrlDetectedBy.SelectedItem).UserId;
                retTask.OwnerId         = ((RemoteUser)this.cntrlOwnedBy.SelectedItem).UserId;
                retTask.ReleaseId       = ((RemoteRelease)this.cntrlDetectedIn.SelectedItem).ReleaseId;
                if (this._isDescChanged)
                {
                    retTask.Description = this.cntrlDescription.HTMLText;
                }
                else
                {
                    retTask.Description = this._Task.Description;
                }
                if (this.cntrlStartDate.SelectedDate.HasValue)
                {
                    retTask.StartDate = this.cntrlStartDate.SelectedDate.Value.ToUniversalTime();
                }
                if (this.cntrlEndDate.SelectedDate.HasValue)
                {
                    retTask.EndDate = this.cntrlEndDate.SelectedDate.Value.ToUniversalTime();
                }
                retTask.TaskStatusId    = ((TaskStatus)this.cntrlStatus.SelectedValue).StatusId.Value;
                retTask.EstimatedEffort = StaticFuncs.GetMinutesFromValues(this.cntrlEstEffortH.Text, this.cntrlEstEffortM.Text);
                retTask.ActualEffort    = StaticFuncs.GetMinutesFromValues(this.cntrlActEffortH.Text, this.cntrlActEffortM.Text);
                retTask.RemainingEffort = StaticFuncs.GetMinutesFromValues(this.cntrlRemEffortH.Text, this.cntrlRemEffortM.Text);

                //Custom fields..
                retTask.CustomProperties = this.cntCustomProps.GetCustomProperties();
            }
            catch (Exception ex)
            {
                Logger.LogMessage(ex, "save_GetFromFields()");
                MessageBox.Show(StaticFuncs.getCultureResource.GetString("app_General_UnexpectedError"), StaticFuncs.getCultureResource.GetString("app_General_ApplicationShortName"), MessageBoxButton.OK, MessageBoxImage.Error);
                return(null);
            }

            //Return
            return(retTask);
        }
        /// <summary>Hit when the user wants to save the task.</summary>
        /// <param name="sender">The save button.</param>
        /// <param name="e">RoutedEventArgs</param>
        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            if (e != null)
            {
                e.Handled = true;
            }

            try
            {
                this.barSavingIncident.Value   = -5;
                this.barSavingIncident.Maximum = 0;
                this.barSavingIncident.Minimum = -5;

                if (this._isFieldChanged || this._isWkfChanged || this._isResChanged || this._isDescChanged)
                {
                    //Clear highlights.
                    this.workflow_ClearAllRequiredHighlights();

                    //Set working flag.
                    this.IsSaving = true;

                    //Get the new values from the form..
                    RemoteIncident newIncident = this.save_GetFromFields();

                    if (newIncident != null && this.workflow_CheckRequiredFields())
                    {
                        //Create a client, and save task and resolution..
                        ImportExportClient clientSave = StaticFuncs.CreateClient(((SpiraProject)this._ArtifactDetails.ArtifactParentProject.ArtifactTag).ServerURL.ToString());
                        clientSave.Connection_Authenticate2Completed    += clientSave_Connection_Authenticate2Completed;
                        clientSave.Connection_ConnectToProjectCompleted += clientSave_Connection_ConnectToProjectCompleted;
                        clientSave.Incident_UpdateCompleted             += clientSave_Incident_UpdateCompleted;
                        clientSave.Incident_AddCommentsCompleted        += clientSave_Incident_AddCommentsCompleted;
                        clientSave.Connection_DisconnectCompleted       += clientSave_Connection_DisconnectCompleted;

                        //Fire off the connection.
                        this._clientNumSaving = 1;
                        clientSave.Connection_Authenticate2Async(((SpiraProject)this._ArtifactDetails.ArtifactParentProject.ArtifactTag).UserName, ((SpiraProject)this._ArtifactDetails.ArtifactParentProject.ArtifactTag).UserPass, StaticFuncs.getCultureResource.GetString("app_ReportName"), this._clientNum++);
                    }
                    else
                    {
                        //Display message saying that some required fields aren't filled out.
                        MessageBox.Show(StaticFuncs.getCultureResource.GetString("app_General_RequiredFieldsMessage"), StaticFuncs.getCultureResource.GetString("app_General_RequiredFields"), MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.LogMessage(ex, "btnSave_Click()");
                MessageBox.Show(StaticFuncs.getCultureResource.GetString("app_General_UnexpectedError"), StaticFuncs.getCultureResource.GetString("app_General_ApplicationShortName"), MessageBoxButton.OK, MessageBoxImage.Error);
            }

            if (this._clientNumSaving == 0)
            {
                this.IsSaving = false;
            }
        }
Esempio n. 7
0
 public override void Update()
 {
     attachedConference.RestTime = attachedConference.StartTime - DateTime.Now;
     if (attachedConference.RestTime.Hours == 0 &&
         attachedConference.RestTime.Minutes == 0 &&
         attachedConference.RestTime.Seconds == 30)
     {
         StaticFuncs.showBalloon($"Конференция {attachedConference.Name}", $"Начало через {StaticFuncs.GetTimeRest(attachedConference.RestTime)}");
     }
 }
        public cntlTTipUser(TreeViewArtifact dataItem)
        {
            this._dataitem = dataItem;

            //Initialize.
            InitializeComponent();

            //Set images.
            this.imgUser.Source = StaticFuncs.getImage("imgUser", new System.Windows.Size(16, 16)).Source;
        }
Esempio n. 9
0
        /// <summary>Copies over our values from the form into an Incident object.</summary>
        /// <returns>A new RemoteIncident, or Null if error.</returns>
        private RemoteRequirement save_GetFromFields()
        {
            const string METHOD = CLASS + "save_GetFromFields()";

            RemoteRequirement retRequirement = null;

            try
            {
                retRequirement = new RemoteRequirement();

                //Standard fields..
                retRequirement.ConcurrencyDate      = this._Requirement.ConcurrencyDate;
                retRequirement.CoverageCountBlocked = this._Requirement.CoverageCountBlocked;
                retRequirement.CoverageCountCaution = this._Requirement.CoverageCountCaution;
                retRequirement.CoverageCountFailed  = this._Requirement.CoverageCountFailed;
                retRequirement.CoverageCountPassed  = this._Requirement.CoverageCountPassed;
                retRequirement.CoverageCountTotal   = this._Requirement.CoverageCountTotal;
                retRequirement.CreationDate         = this._Requirement.CreationDate.ToUniversalTime();
                retRequirement.IndentLevel          = this._Requirement.IndentLevel;
                retRequirement.LastUpdateDate       = this._Requirement.LastUpdateDate.ToUniversalTime();
                retRequirement.ProjectId            = this._Requirement.ProjectId;
                retRequirement.RequirementId        = this._Requirement.RequirementId;
                retRequirement.Summary             = this._Requirement.Summary;
                retRequirement.TaskActualEffort    = this._Requirement.TaskActualEffort;
                retRequirement.TaskCount           = this._Requirement.TaskCount;
                retRequirement.TaskEstimatedEffort = this._Requirement.TaskEstimatedEffort;
                retRequirement.AuthorId            = ((RemoteUser)this.cntrlCreatedBy.SelectedItem).UserId;
                if (this._isDescChanged)
                {
                    retRequirement.Description = this.cntrlDescription.HTMLText;
                }
                else
                {
                    retRequirement.Description = this._Requirement.Description;
                }
                retRequirement.ImportanceId  = ((RequirementPriority)this.cntrlImportance.SelectedItem).PriorityId;
                retRequirement.Name          = this.cntrlName.Text.Trim();
                retRequirement.OwnerId       = ((RemoteUser)this.cntrlOwnedBy.SelectedItem).UserId;
                retRequirement.PlannedEffort = StaticFuncs.GetMinutesFromValues(this.cntrlPlnEffortH.Text, this.cntrlPlnEffortM.Text);
                retRequirement.ReleaseId     = ((RemoteRelease)this.cntrlRelease.SelectedItem).ReleaseId;
                retRequirement.StatusId      = ((RequirementStatus)this.cntrlStatus.SelectedItem).StatusId;

                //Custom Properties
                retRequirement.CustomProperties = this.cntCustomProps.GetCustomProperties();
            }
            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);
                retRequirement = null;
            }

            //Return
            return(retRequirement);
        }
        /// <summary>Creates a new instance of the control.</summary>
        public cntlTTipProject(SpiraProject dataItem)
        {
            this._dataitem = dataItem;

            //Initialize.
            InitializeComponent();

            //Set images.
            this.imgProject.Source = StaticFuncs.getImage("imgProject", new System.Windows.Size(16, 16)).Source;
            //Set strings.
            this.txtProjName.Text   = StaticFuncs.getCultureResource.GetString("app_Project_Name");
            this.txtServerUrl.Text  = StaticFuncs.getCultureResource.GetString("app_Project_ServerUrl");
            this.txtServerUser.Text = StaticFuncs.getCultureResource.GetString("app_Project_ServerLogin");
        }
        /// <summary>
        /// Opens the artifact in a web browser
        /// </summary>
        /// <param name="treeViewArtifact"></param>
        public void OpenDetailsToolWindow(TreeViewArtifact treeViewArtifact)
        {
            string METHOD = CLASS + "OpenDetailsToolWindow";

            try
            {
                //We need to get the URL, and then launch it.
                string strUrl = ((SpiraProject)treeViewArtifact.ArtifactParentProject.ArtifactTag).ServerURL.ToString();

                Business.SpiraTeam_Client.SoapServiceClient client = StaticFuncs.CreateClient(strUrl);

                if (treeViewArtifact.ArtifactType != Inflectra.SpiraTest.IDEIntegration.VisualStudio2012.Business.TreeViewArtifact.ArtifactTypeEnum.None)
                {
                    //Users need to use the resource URL
                    string strArtUrl;
                    if (treeViewArtifact.ArtifactType == Inflectra.SpiraTest.IDEIntegration.VisualStudio2012.Business.TreeViewArtifact.ArtifactTypeEnum.User)
                    {
                        //Resources = -11,
                        strArtUrl = client.System_GetArtifactUrl(/*Resources*/ -11, treeViewArtifact.ArtifactParentProject.ArtifactId, treeViewArtifact.ArtifactId, null);
                    }
                    else
                    {
                        strArtUrl = client.System_GetArtifactUrl((int)treeViewArtifact.ArtifactType, treeViewArtifact.ArtifactParentProject.ArtifactId, treeViewArtifact.ArtifactId, null);
                    }

                    //In case the API hasn't been updated to return the full URL..
                    if (strArtUrl.StartsWith("~"))
                    {
                        strUrl = strArtUrl.Replace("~", strUrl);
                    }

                    try
                    {
                        System.Diagnostics.Process.Start(strUrl);
                    }
                    catch (Exception ex)
                    {
                        Logger.LogMessage(ex);
                        MessageBox.Show("Error launching browser.", "Launch URL", MessageBoxButton.OK, MessageBoxImage.Warning);
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.LogMessage(ex, "OpenDetailsToolWindow()");
                MessageBox.Show(StaticFuncs.getCultureResource.GetString("app_General_UnexpectedError"), StaticFuncs.getCultureResource.GetString("app_General_ApplicationShortName"), MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
        private void InitNullEvents()
        {
            OnAfterOpenSolution += () => {
                address  = SpiraContext.BaseUri.ToString();
                id       = SpiraContext.Login;
                password = SpiraContext.Password;

                //Create new client.
                this._client = StaticFuncs.CreateClient(address.Trim());
                this._client.Connection_Authenticate2Completed += new EventHandler <Connection_Authenticate2CompletedEventArgs>(_client_CommunicationFinished);
                this._client.User_RetrieveByUserNameCompleted  += new EventHandler <User_RetrieveByUserNameCompletedEventArgs>(_client_CommunicationFinished);
                this._client.Project_RetrieveCompleted         += new EventHandler <Project_RetrieveCompletedEventArgs>(_client_CommunicationFinished);

                this._client.Connection_Authenticate2Async(id, password, StaticFuncs.getCultureResource.GetString("app_ReportName"));
            };
        }
        public cntlTTipRequirement(TreeViewArtifact dataItem)
        {
            this._dataitem = dataItem;

            //Initialize.
            InitializeComponent();

            //Set images.
            this.imgProject.Source  = StaticFuncs.getImage("imgProject", new System.Windows.Size(16, 16)).Source;
            this.imgIncident.Source = StaticFuncs.getImage("imgIncident", new System.Windows.Size(16, 16)).Source;
            this.imgRelease.Source  = StaticFuncs.getImage("imgRelease", new System.Windows.Size(16, 16)).Source;
            //Set strings.
            this.txtItemId.Text  = StaticFuncs.getCultureResource.GetString("app_Requirement_ID") + ":";
            this.txtProject.Text = StaticFuncs.getCultureResource.GetString("app_Project") + ":";
            this.txtOwner.Text   = StaticFuncs.getCultureResource.GetString("app_General_Owner") + ":";
            this.txtStatus.Text  = StaticFuncs.getCultureResource.GetString("app_General_Status") + ":";
            this.txtPlanned.Text = StaticFuncs.getCultureResource.GetString("app_Requirement_PlannedEff") + ":";
            this.txtAssRel.Text  = StaticFuncs.getCultureResource.GetString("app_General_Release") + ":";
        }
        /// <summary>Called when the user changes the workflow step, pulls enabled/required fields.</summary>
        private void workflow_ChangeWorkflowStep()
        {
            try
            {
                //This is a potentially different workflow, so create the client to go out and get fields.
                ImportExportClient wkfClient = StaticFuncs.CreateClient(this._Project.ServerURL.ToString());
                wkfClient.Connection_Authenticate2Completed                  += new EventHandler <Connection_Authenticate2CompletedEventArgs>(wkfClient_Connection_Authenticate2Completed);
                wkfClient.Connection_ConnectToProjectCompleted               += new EventHandler <Connection_ConnectToProjectCompletedEventArgs>(wkfClient_Connection_ConnectToProjectCompleted);
                wkfClient.Incident_RetrieveWorkflowFieldsCompleted           += new EventHandler <Incident_RetrieveWorkflowFieldsCompletedEventArgs>(wkfClient_Incident_RetrieveWorkflowFieldsCompleted);
                wkfClient.Incident_RetrieveWorkflowCustomPropertiesCompleted += new EventHandler <Incident_RetrieveWorkflowCustomPropertiesCompletedEventArgs>(wkfClient_Incident_RetrieveWorkflowCustomPropertiesCompleted);

                //Connect.
                this._clientNumRunning = 1;
                wkfClient.Connection_Authenticate2Async(this._Project.UserName, this._Project.UserPass, StaticFuncs.getCultureResource.GetString("app_ReportName"));
            }
            catch (Exception ex)
            {
                Logger.LogMessage(ex, "workflow_ChangeWorkflowStep()");
                MessageBox.Show(StaticFuncs.getCultureResource.GetString("app_General_UnexpectedError"), StaticFuncs.getCultureResource.GetString("app_General_ApplicationShortName"), MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
        public cntlTTipTask(TreeViewArtifact dataItem)
        {
            this._dataitem = dataItem;

            //Initialize.
            InitializeComponent();

            //Set images.
            this.imgProject.Source  = StaticFuncs.getImage("imgProject", new System.Windows.Size(16, 16)).Source;
            this.imgIncident.Source = StaticFuncs.getImage("imgIncident", new System.Windows.Size(16, 16)).Source;
            this.imgTaskTime.Source = StaticFuncs.getImage("imgTaskTime", new System.Windows.Size(16, 16)).Source;
            //Set strings.
            this.txtItemId.Text    = StaticFuncs.getCultureResource.GetString("app_Task_ID") + ":";
            this.txtProject.Text   = StaticFuncs.getCultureResource.GetString("app_Project") + ":";
            this.txtOwner.Text     = StaticFuncs.getCultureResource.GetString("app_General_Owner") + ":";
            this.txtPriority.Text  = StaticFuncs.getCultureResource.GetString("app_General_Priority") + ":";
            this.txtRelease.Text   = StaticFuncs.getCultureResource.GetString("app_Global_AssociatedRelease") + ":";
            this.txtStatus.Text    = StaticFuncs.getCultureResource.GetString("app_General_Status") + ":";
            this.txtStartDate.Text = StaticFuncs.getCultureResource.GetString("app_General_StartDate") + ":";
            this.txtEndDate.Text   = StaticFuncs.getCultureResource.GetString("app_General_EndDate") + ":";
            this.tstProjEff.Text   = StaticFuncs.getCultureResource.GetString("app_General_ProjEffort") + ":";
            this.tstActEff.Text    = StaticFuncs.getCultureResource.GetString("app_General_ActEffort") + ":";
            this.tstRemEff.Text    = StaticFuncs.getCultureResource.GetString("app_General_RemEffort") + ":";
        }
        /// <summary>Creates a new instance of our IncidentDetailsForm.</summary>
        public frmDetailsTask()
        {
            try
            {
                InitializeComponent();

                //Load images needed..
                this.imgLoadingTask.Source  = StaticFuncs.getImage("imgInfoWPF", new Size(48, 48)).Source;
                this.imgSavingTask.Source   = StaticFuncs.getImage("imgSaveWPF", new Size(48, 48)).Source;
                this.imgLoadingError.Source = StaticFuncs.getImage("imgErrorWPF", new Size(48, 48)).Source;
                //Load strings needed..
                this.toolTxtSave.Text               = StaticFuncs.getCultureResource.GetString("app_General_Save");
                this.toolTxtRefresh.Text            = StaticFuncs.getCultureResource.GetString("app_General_Refresh");
                this.toolTxtLoadWeb.Text            = StaticFuncs.getCultureResource.GetString("app_General_ViewBrowser");
                this.toolTxtTimer.Text              = StaticFuncs.getCultureResource.GetString("app_General_StartTimer");
                this.lblLoadingTask.Text            = StaticFuncs.getCultureResource.GetString("app_Task_Loading");
                this.lblSavingTask.Text             = StaticFuncs.getCultureResource.GetString("app_Task_Saving");
                this.btnRetryLoad.Content           = StaticFuncs.getCultureResource.GetString("app_General_ButtonRetry");
                this.lblLoadingError.Text           = StaticFuncs.getCultureResource.GetString("app_General_TalkingToServerErrorMessage");
                this.lblExpanderDetails.Text        = StaticFuncs.getCultureResource.GetString("app_General_ExpanderDetails");
                this.lblName.Text                   = StaticFuncs.getCultureResource.GetString("app_General_Name") + ":";
                this.lblTxtToken.Text               = StaticFuncs.getCultureResource.GetString("app_General_CopyToClipboard");
                this.lblStatus.Text                 = StaticFuncs.getCultureResource.GetString("app_General_Status") + ":";
                this.lblDetectedBy.Text             = StaticFuncs.getCultureResource.GetString("app_Task_OpenedBy") + ":";
                this.lblOwnedBy.Text                = StaticFuncs.getCultureResource.GetString("app_General_OwnedBy") + ":";
                this.lblPriority.Text               = StaticFuncs.getCultureResource.GetString("app_General_Priority") + ":";
                this.lblDetectedIn.Text             = StaticFuncs.getCultureResource.GetString("app_Global_AssociatedRelease") + ":";
                this.lblRequirement.Text            = StaticFuncs.getCultureResource.GetString("app_General_AssociatedRequirement") + ":";
                this.lblLastModified.Text           = StaticFuncs.getCultureResource.GetString("app_Task_LastModified") + ":";
                this.lblDescription.Text            = StaticFuncs.getCultureResource.GetString("app_General_Description") + ":";
                this.lblExpanderComments.Text       = StaticFuncs.getCultureResource.GetString("app_General_ExpanderResolution");
                this.lblExpanderSchedule.Text       = StaticFuncs.getCultureResource.GetString("app_General_ExpanderSchedule");
                this.lblPerComplete.Text            = StaticFuncs.getCultureResource.GetString("app_General_PerComplete") + ":";
                this.lblStartDate.Text              = StaticFuncs.getCultureResource.GetString("app_General_StartDate") + ":";
                this.lblEndDate.Text                = StaticFuncs.getCultureResource.GetString("app_General_EndDate") + ":";
                this.lblEstEffort.Text              = StaticFuncs.getCultureResource.GetString("app_General_EstEffort") + ":";
                this.lblHours4.Text                 = StaticFuncs.getCultureResource.GetString("app_General_Hours");
                this.lblMins4.Text                  = StaticFuncs.getCultureResource.GetString("app_General_Minutes");
                this.lblProjEffort.Text             = StaticFuncs.getCultureResource.GetString("app_General_ProjEffort") + ":";
                this.lblHours1.Text                 = StaticFuncs.getCultureResource.GetString("app_General_Hours");
                this.lblMins1.Text                  = StaticFuncs.getCultureResource.GetString("app_General_Minutes");
                this.lblActEffort.Text              = StaticFuncs.getCultureResource.GetString("app_General_ActEffort") + ":";
                this.lblHours2.Text                 = StaticFuncs.getCultureResource.GetString("app_General_Hours");
                this.lblMins2.Text                  = StaticFuncs.getCultureResource.GetString("app_General_Minutes");
                this.lblRemEffort.Text              = StaticFuncs.getCultureResource.GetString("app_General_RemEffort") + ":";
                this.lblHours3.Text                 = StaticFuncs.getCultureResource.GetString("app_General_Hours");
                this.lblMins3.Text                  = StaticFuncs.getCultureResource.GetString("app_General_Minutes");
                this.lblExpanderCustom.Text         = StaticFuncs.getCultureResource.GetString("app_General_ExpanderCustom");
                this.lblExpanderAttachments.Text    = StaticFuncs.getCultureResource.GetString("app_General_Attachments");
                this.lblAddNewResolution.Text       = StaticFuncs.getCultureResource.GetString("app_General_AddNewComment") + ":";
                this.btnConcurrencyMergeNo.Content  = StaticFuncs.getCultureResource.GetString("app_General_Refresh");
                this.btnConcurrencyMergeYes.Content = StaticFuncs.getCultureResource.GetString("app_General_Merge");
                this.lblMergeConcurrency.Text       = StaticFuncs.getCultureResource.GetString("app_Task_MergeConcurrency");
                this.btnConcurrencyRefresh.Content  = StaticFuncs.getCultureResource.GetString("app_General_Refresh");
                this.lblNoMergeConcurrency.Text     = StaticFuncs.getCultureResource.GetString("app_Task_NoMergeConcurrency");

                //Load fixed-option dropdowns.
                // -- Status
                for (int i = 1; i <= 5; i++)
                {
                    TaskStatus newStatus = new TaskStatus();
                    newStatus.StatusId = i;
                    switch (i)
                    {
                    case 1:
                        newStatus.Name = StaticFuncs.getCultureResource.GetString("app_Task_Status_NotStarted");
                        break;

                    case 2:
                        newStatus.Name = StaticFuncs.getCultureResource.GetString("app_Task_Status_InProgress");
                        break;

                    case 3:
                        newStatus.Name = StaticFuncs.getCultureResource.GetString("app_Task_Status_Completed");
                        break;

                    case 4:
                        newStatus.Name = StaticFuncs.getCultureResource.GetString("app_Task_Status_Blocked");
                        break;

                    case 5:
                        newStatus.Name = StaticFuncs.getCultureResource.GetString("app_Task_Status_Deferred");
                        break;
                    }
                    this.cntrlStatus.Items.Add(newStatus);
                }
                // -- Priority
                for (int j = 0; j <= 4; j++)
                {
                    TaskPriority newPriority = new TaskPriority();
                    newPriority.PriorityId = ((j == 0) ? new int?() : j);
                    switch (j)
                    {
                    case 0:
                        newPriority.Name = StaticFuncs.getCultureResource.GetString("app_Task_Priority_0");
                        break;

                    case 1:
                        newPriority.Name = StaticFuncs.getCultureResource.GetString("app_Task_Priority_1");
                        break;

                    case 2:
                        newPriority.Name = StaticFuncs.getCultureResource.GetString("app_Task_Priority_2");
                        break;

                    case 3:
                        newPriority.Name = StaticFuncs.getCultureResource.GetString("app_Task_Priority_3");
                        break;

                    case 4:
                        newPriority.Name = StaticFuncs.getCultureResource.GetString("app_Task_Priority_4");
                        break;
                    }
                    this.cntrlPriority.Items.Add(newPriority);
                }
            }
            catch (Exception ex)
            {
                Logger.LogMessage(ex, "InitializeComponent()");
                MessageBox.Show(StaticFuncs.getCultureResource.GetString("app_General_UnexpectedError"), StaticFuncs.getCultureResource.GetString("app_General_ApplicationShortName"), MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
        /// <summary>Creates a new instance of our IncidentDetailsForm.</summary>
        public frmDetailsRequirement()
        {
            try
            {
                InitializeComponent();

                //Load images needed..
                this.imgLoadingIncident.Source = StaticFuncs.getImage("imgInfoWPF", new Size(48, 48)).Source;
                this.imgSavingIncident.Source  = StaticFuncs.getImage("imgSaveWPF", new Size(48, 48)).Source;
                this.imgLoadingError.Source    = StaticFuncs.getImage("imgErrorWPF", new Size(48, 48)).Source;
                //Load strings needed..
                this.toolTxtSave.Text           = StaticFuncs.getCultureResource.GetString("app_General_Save");
                this.toolTxtRefresh.Text        = StaticFuncs.getCultureResource.GetString("app_General_Refresh");
                this.toolTxtLoadWeb.Text        = StaticFuncs.getCultureResource.GetString("app_General_ViewBrowser");
                this.lblLoadingIncident.Text    = StaticFuncs.getCultureResource.GetString("app_Requirement_Loading");
                this.lblSavingIncident.Text     = StaticFuncs.getCultureResource.GetString("app_Requirement_Saving");
                this.btnRetryLoad.Content       = StaticFuncs.getCultureResource.GetString("app_General_ButtonRetry");
                this.lblLoadingError.Text       = StaticFuncs.getCultureResource.GetString("app_General_TalkingToServerErrorMessage");
                this.lblExpanderDetails.Text    = StaticFuncs.getCultureResource.GetString("app_General_ExpanderDetails");
                this.lblName.Text               = StaticFuncs.getCultureResource.GetString("app_General_Name") + ":";
                this.lblTxtToken.Text           = StaticFuncs.getCultureResource.GetString("app_General_CopyToClipboard");
                this.lblStatus.Text             = StaticFuncs.getCultureResource.GetString("app_General_Status") + ":";
                this.lblCreatedBy.Text          = StaticFuncs.getCultureResource.GetString("app_Requirement_CreatedBy") + ":";
                this.lblOwnedBy.Text            = StaticFuncs.getCultureResource.GetString("app_General_OwnedBy") + ":";
                this.lblImportance.Text         = StaticFuncs.getCultureResource.GetString("app_General_Priority") + ":";
                this.lblRelease.Text            = StaticFuncs.getCultureResource.GetString("app_General_AssociatedRequirement") + ":";
                this.lblDescription.Text        = StaticFuncs.getCultureResource.GetString("app_General_Description") + ":";
                this.lblExpanderResolution.Text = StaticFuncs.getCultureResource.GetString("app_General_ExpanderResolution");
                this.lblPlnEffort.Text          = StaticFuncs.getCultureResource.GetString("app_General_EstEffort") + ":";
                this.lblHours.Text              = StaticFuncs.getCultureResource.GetString("app_General_Hours");
                this.lblMins.Text               = StaticFuncs.getCultureResource.GetString("app_General_Minutes");
                this.lblExpanderTasks.Text      = StaticFuncs.getCultureResource.GetString("app_Requirement_ExpanderTask");
                //this.lblExpanderCustom.Text = StaticFuncs.getCultureResource.GetString("app_General_ExpanderCustom");
                this.lblExpanderAttachments.Text    = StaticFuncs.getCultureResource.GetString("app_General_Attachments");
                this.lblAddNewResolution.Text       = StaticFuncs.getCultureResource.GetString("app_General_AddNewComment") + ":";
                this.btnConcurrencyMergeNo.Content  = StaticFuncs.getCultureResource.GetString("app_General_Refresh");
                this.btnConcurrencyMergeYes.Content = StaticFuncs.getCultureResource.GetString("app_General_Merge");
                this.lblMergeConcurrency.Text       = StaticFuncs.getCultureResource.GetString("app_Requirement_AskMergeConcurrency");
                this.btnConcurrencyRefresh.Content  = StaticFuncs.getCultureResource.GetString("app_General_Refresh");
                this.lblNoMergeConcurrency.Text     = StaticFuncs.getCultureResource.GetString("app_Requirement_NoMergeConcurrency");

                //Load fixed-option dropdowns.
                // -- Importance
                for (int j = 0; j <= 4; j++)
                {
                    //HACK: We use the same values as the Task Priority.
                    RequirementPriority newImp = new RequirementPriority();
                    newImp.PriorityId = ((j == 0) ? new int?() : j);
                    switch (j)
                    {
                    case 0:
                        newImp.Name = StaticFuncs.getCultureResource.GetString("app_Task_Priority_0");
                        break;

                    case 1:
                        newImp.Name = StaticFuncs.getCultureResource.GetString("app_Task_Priority_1");
                        break;

                    case 2:
                        newImp.Name = StaticFuncs.getCultureResource.GetString("app_Task_Priority_2");
                        break;

                    case 3:
                        newImp.Name = StaticFuncs.getCultureResource.GetString("app_Task_Priority_3");
                        break;

                    case 4:
                        newImp.Name = StaticFuncs.getCultureResource.GetString("app_Task_Priority_4");
                        break;
                    }
                    this.cntrlImportance.Items.Add(newImp);
                }
                this.cntrlImportance.SelectedIndex = 0;
                // -- Status
                for (int i = 1; i <= 8; i++)
                {
                    RequirementStatus newStatus = new RequirementStatus();
                    newStatus.StatusId = i;
                    switch (i)
                    {
                    case 1:
                        newStatus.Name = StaticFuncs.getCultureResource.GetString("app_Requirement_Status_Requested");
                        break;

                    case 2:
                        newStatus.Name = StaticFuncs.getCultureResource.GetString("app_Requirement_Status_Planned");
                        break;

                    case 3:
                        newStatus.Name = StaticFuncs.getCultureResource.GetString("app_Requirement_Status_InProgress");
                        break;

                    case 4:
                        newStatus.Name = StaticFuncs.getCultureResource.GetString("app_Requirement_Status_Completed");
                        break;

                    case 5:
                        newStatus.Name = StaticFuncs.getCultureResource.GetString("app_Requirement_Status_Accepted");
                        break;

                    case 6:
                        newStatus.Name = StaticFuncs.getCultureResource.GetString("app_Requirement_Status_Rejected");
                        break;

                    case 7:
                        newStatus.Name = StaticFuncs.getCultureResource.GetString("app_Requirement_Status_Evaluated");
                        break;

                    case 8:
                        newStatus.Name = StaticFuncs.getCultureResource.GetString("app_Requirement_Status_Obsolete");
                        break;
                    }
                    this.cntrlStatus.Items.Add(newStatus);
                }
                this.cntrlStatus.SelectedIndex = 0;
            }
            catch (Exception ex)
            {
                Logger.LogMessage(ex, ".ctor()");
                MessageBox.Show(StaticFuncs.getCultureResource.GetString("app_General_UnexpectedError"), StaticFuncs.getCultureResource.GetString("app_General_ApplicationShortName"), MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
        public frmNewSpiraProject()
        {
            try
            {
                InitializeComponent();

                //Set the title & icon.
                this.Title = Business.StaticFuncs.getCultureResource.GetString("strNewSpiraProject");
                try
                {
                    System.Drawing.Icon ico    = (System.Drawing.Icon)Business.StaticFuncs.getCultureResource.GetObject("icoLogo");
                    MemoryStream        icoStr = new MemoryStream();
                    ico.Save(icoStr);
                    icoStr.Seek(0, SeekOrigin.Begin);
                    this.Icon = BitmapFrame.Create(icoStr);
                }
                catch (Exception ex)
                {
                    Logger.LogMessage(ex);
                }

                //Set initial colors and form status.
                this.barProg.Foreground      = (Brush) new System.Windows.Media.BrushConverter().ConvertFrom(Business.StaticFuncs.getCultureResource.GetString("app_Colors_StyledBarNormal"));
                this.barProg.IsIndeterminate = false;
                this.barProg.Value           = 0;
                this.grdAvailProjs.IsEnabled = false;
                this.grdEntry.IsEnabled      = true;
                this.btnConnect.Tag          = false;
                this.btnConnect.Click       += new RoutedEventHandler(btnConnect_Click);
                int num = this.cmbProjectList.Items.Add("-- No Projects Available --");
                this.cmbProjectList.SelectedIndex     = num;
                this.cmbProjectList.SelectionChanged += new SelectionChangedEventHandler(cmbProjectList_SelectionChanged);

                //See if we have initial values to load in for this solution
                if (SpiraContext.HasSolutionProps)
                {
                    this.txbServer.Text = SpiraContext.BaseUri.ToString();
                    if (!String.IsNullOrEmpty(SpiraContext.Login) && !String.IsNullOrEmpty(SpiraContext.Password))
                    {
                        this.txbUserID.Text       = SpiraContext.Login;
                        this.txbUserPass.Password = SpiraContext.Password;

                        //Start the connections.
                        this.barProg.IsIndeterminate = true;
                        this.barProg.Foreground      = (Brush) new System.Windows.Media.BrushConverter().ConvertFrom(StaticFuncs.getCultureResource.GetString("app_Colors_StyledBarColor"));
                        this.grdEntry.IsEnabled      = false;
                        this.btnConnect.Content      = "_Cancel";
                        this.btnConnect.Tag          = true;
                        this.txtStatus.Text          = "Connecting to server...";
                        this.cmbProjectList.Items.Clear();
                        this.grdAvailProjs.IsEnabled = false;

                        //Create new client.
                        this._client = StaticFuncs.CreateClient(this.txbServer.Text.Trim());
                        this._client.Connection_Authenticate2Completed += new EventHandler <Connection_Authenticate2CompletedEventArgs>(_client_CommunicationFinished);
                        this._client.User_RetrieveByUserNameCompleted  += new EventHandler <User_RetrieveByUserNameCompletedEventArgs>(_client_CommunicationFinished);
                        this._client.Project_RetrieveCompleted         += new EventHandler <Project_RetrieveCompletedEventArgs>(_client_CommunicationFinished);

                        this._client.Connection_Authenticate2Async(this.txbUserID.Text, this.txbUserPass.Password, StaticFuncs.getCultureResource.GetString("app_ReportName"));
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.LogMessage(ex, "InitializeComponent()");
                MessageBox.Show(StaticFuncs.getCultureResource.GetString("app_General_UnexpectedError"), StaticFuncs.getCultureResource.GetString("app_General_ApplicationShortName"), MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
        /// <summary>Checks all required fields for a value.</summary>
        /// <returns>True if all is good. False if fields marked as required are left unset.</returns>
        private bool workflow_CheckRequiredFields()
        {
            try
            {
                bool retValue = true;

                //First, get the set of required fields we want to check against.
                bool useUpdate = (this._IncSelectedStatus.HasValue || this._IncSelectedType.HasValue);
                Dictionary <int, WorkflowField.WorkflowStatusEnum> workflowField  = ((useUpdate) ? this._WorkflowFields_Updated : this._WorkflowFields_Current);
                Dictionary <int, WorkflowField.WorkflowStatusEnum> workflowCustom = ((useUpdate) ? this._WorkflowCustom_Updated : this._WorkflowCustom_Current);

                #region Loop through Standard Fields
                //Loop through each field..
                foreach (KeyValuePair <int, WorkflowField> kvpField in this._WorkflowFields)
                {
                    //We only care about required fields.
                    if (workflowField[kvpField.Key] == WorkflowField.WorkflowStatusEnum.Required &&
                        !kvpField.Value.IsNotDisplayed &&
                        !kvpField.Value.IsFixed)
                    {
                        //Find the field and act upon it. Based on type on control and datatype inside it.
                        switch (kvpField.Key)
                        {
                        case 1:                                 // Severity
                            if (!((RemoteIncidentSeverity)((ComboBox)kvpField.Value.FieldDataControl).SelectedItem).SeverityId.HasValue)
                            {
                                ((Control)kvpField.Value.FieldDataControl).Style = (Style)this.FindResource("PaddedControlRequiredHighlight");
                                retValue = false;
                            }
                            break;

                        case 2:                                 // Priority
                            if (!((RemoteIncidentPriority)((ComboBox)kvpField.Value.FieldDataControl).SelectedItem).PriorityId.HasValue)
                            {
                                ((Control)kvpField.Value.FieldDataControl).Style = (Style)this.FindResource("PaddedControlRequiredHighlight");
                                retValue = false;
                            }
                            break;

                        case 4:                                 // Type
                            if (!((RemoteIncidentType)((ComboBox)kvpField.Value.FieldDataControl).SelectedItem).IncidentTypeId.HasValue)
                            {
                                ((Control)kvpField.Value.FieldDataControl).Style = (Style)this.FindResource("PaddedControlRequiredHighlight");
                                retValue = false;
                            }
                            break;

                        case 5:                                 // Detector
                        case 6:                                 // Owner
                            if (!((RemoteUser)((ComboBox)kvpField.Value.FieldDataControl).SelectedItem).UserId.HasValue)
                            {
                                ((Control)kvpField.Value.FieldDataControl).Style = (Style)this.FindResource("PaddedControlRequiredHighlight");
                                retValue = false;
                            }
                            break;

                        case 7:                                 // Detected Release
                        case 8:                                 // Resolved Release
                        case 9:                                 // Verified Release
                            if (!((RemoteRelease)((ComboBox)kvpField.Value.FieldDataControl).SelectedItem).ReleaseId.HasValue)
                            {
                                ((Control)kvpField.Value.FieldDataControl).Style = (Style)this.FindResource("PaddedControlRequiredHighlight");
                                retValue = false;
                            }
                            break;

                        case 10:                                 // Name
                            if (string.IsNullOrWhiteSpace(((TextBox)kvpField.Value.FieldDataControl).Text))
                            {
                                ((Control)kvpField.Value.FieldDataControl).Style = (Style)this.FindResource("PaddedControlRequiredHighlight");
                                retValue = false;
                            }
                            break;

                        case 11:                                 // Description
                        case 12:                                 // Resolution
                            if (kvpField.Value.FieldDataControl is Expander)
                            {
                                //It's an expander. Likely the Comments, so for now assume it is.
                                //HACK: Assuming Comments field from Expander.
                                if (string.IsNullOrWhiteSpace(StaticFuncs.StripTagsCharArray(this.cntrlResolution.HTMLText)))
                                {
                                    this.cntrlResolution.Style = (Style)this.FindResource("PaddedControlRequiredHighlight");
                                    retValue = false;
                                }
                            }
                            else if (kvpField.Value.FieldDataControl is cntrlRichTextEditor)
                            {
                                if (string.IsNullOrWhiteSpace(StaticFuncs.StripTagsCharArray(((cntrlRichTextEditor)kvpField.Value.FieldDataControl).HTMLText)))
                                {
                                    ((Control)kvpField.Value.FieldDataControl).Style = (Style)this.FindResource("PaddedControlRequiredHighlight");
                                    retValue = false;
                                }
                            }
                            break;

                        case 14:                                 // Closed Date
                        case 45:                                 // Start Date
                            if (!((DatePicker)kvpField.Value.FieldDataControl).SelectedDate.HasValue)
                            {
                                ((Control)kvpField.Value.FieldDataControl).Style = (Style)this.FindResource("PaddedControlRequiredHighlight");
                                retValue = false;
                            }
                            break;

                        case 47:                                 // Estimated Effort
                            if (!this.cntrlEstEffortH.Value.HasValue && !this.cntrlEstEffortM.Value.HasValue)
                            {
                                this.cntrlEstEffortH.Style = (Style)this.FindResource("PaddedControlRequiredHighlight");
                                retValue = false;
                            }
                            break;

                        case 48:                                 // Actual Effort
                            if (!this.cntrlActEffortH.Value.HasValue && !this.cntrlActEffortM.Value.HasValue)
                            {
                                this.cntrlActEffortH.Style = (Style)this.FindResource("PaddedControlRequiredHighlight");
                                retValue = false;
                            }
                            break;

                        case 127:                                 // Remaining Effort
                            if (!this.cntrlRemEffortH.Value.HasValue && !this.cntrlRemEffortM.Value.HasValue)
                            {
                                this.cntrlRemEffortH.Style = (Style)this.FindResource("PaddedControlRequiredHighlight");
                                retValue = false;
                            }
                            break;

                        case 3:                                 // Status
                        case 13:                                // Creation Date
                        case 15:                                // Last Modified Date
                        case 46:                                // Completion %
                        case 94:                                // Incident ID
                        case 126:                               // Projected Effort
                        case 136:                               // Fixed Build
                        case 138:                               // Progress
                            //We don't do anything with these.
                            break;
                        }
                    }
                }
                #endregion

                #region Loop through Custom Fields
                bool custFields = true;
                custFields = this.cntCustomProps.PerformValidation(true);
                if (!custFields)
                {
                    retValue = false;
                }
                #endregion

                return(retValue);
            }
            catch (Exception ex)
            {
                Logger.LogMessage(ex, "workflow_CheckRequiredFields()");
                MessageBox.Show(StaticFuncs.getCultureResource.GetString("app_General_UnexpectedError"), StaticFuncs.getCultureResource.GetString("app_General_ApplicationShortName"), MessageBoxButton.OK, MessageBoxImage.Error);
                return(false);
            }
        }
Esempio n. 20
0
        /// <summary>Creates a new instance of our IncidentDetailsForm.</summary>
        public frmDetailsIncident()
        {
            try
            {
                InitializeComponent();
                //Temp set colors?
                //this.Foreground = Shell10.Microsoft.VisualStudio.Shell.VsBrushes.ToolboxSelectedHeadingMiddle2Key;
                //this.Background = VsBrushes.ToolWindowBackgroundKey;

                //Set custom props widts..
                this.cntCustomProps.SetColNumWidth(2, new GridLength(6, GridUnitType.Star));
                this.cntCustomProps.SetColNumWidth(4, new GridLength(6, GridUnitType.Star));

                //Load images needed..
                this.imgLoadingIncident.Source = StaticFuncs.getImage("imgInfoWPF", new Size(48, 48)).Source;
                this.imgSavingIncident.Source  = StaticFuncs.getImage("imgSaveWPF", new Size(48, 48)).Source;
                this.imgLoadingError.Source    = StaticFuncs.getImage("imgErrorWPF", new Size(48, 48)).Source;
                //Load strings needed..
                this.toolTxtSave.Text           = StaticFuncs.getCultureResource.GetString("app_General_Save");
                this.toolTxtRefresh.Text        = StaticFuncs.getCultureResource.GetString("app_General_Refresh");
                this.toolTxtLoadWeb.Text        = StaticFuncs.getCultureResource.GetString("app_General_ViewBrowser");
                this.toolTxtTimer.Text          = StaticFuncs.getCultureResource.GetString("app_General_StartTimer");
                this.mnuTxtActions.Text         = StaticFuncs.getCultureResource.GetString("app_Incident_StatusActions") + ":";
                this.lblLoadingIncident.Text    = StaticFuncs.getCultureResource.GetString("app_Incident_Loading");
                this.lblSavingIncident.Text     = StaticFuncs.getCultureResource.GetString("app_Incident_Saving");
                this.lblExpanderDetails.Text    = StaticFuncs.getCultureResource.GetString("app_General_ExpanderDetails");
                this.btnRetryLoad.Content       = StaticFuncs.getCultureResource.GetString("app_General_ButtonRetry");
                this.lblLoadingError.Text       = StaticFuncs.getCultureResource.GetString("app_General_TalkingToServerErrorMessage");
                this.lblName.Text               = StaticFuncs.getCultureResource.GetString("app_General_Name") + ":";
                this.lblTxtToken.Text           = StaticFuncs.getCultureResource.GetString("app_General_CopyToClipboard");
                this.lblType.Text               = StaticFuncs.getCultureResource.GetString("app_Incident_Type") + ":";
                this.lblStatus.Text             = StaticFuncs.getCultureResource.GetString("app_General_Status") + ":";
                this.lblDetectedBy.Text         = StaticFuncs.getCultureResource.GetString("app_Incident_DetectedBy") + ":";
                this.lblOwnedBy.Text            = StaticFuncs.getCultureResource.GetString("app_General_OwnedBy") + ":";
                this.lblPriority.Text           = StaticFuncs.getCultureResource.GetString("app_General_Priority") + ":";
                this.lblSeverity.Text           = StaticFuncs.getCultureResource.GetString("app_Incident_Severity") + ":";
                this.lblDetectedIn.Text         = StaticFuncs.getCultureResource.GetString("app_Incident_DetectedRelease") + ":";
                this.lblResolvedIn.Text         = StaticFuncs.getCultureResource.GetString("app_Incident_ResolvedRelease") + ":";
                this.lblVerifiedIn.Text         = StaticFuncs.getCultureResource.GetString("app_Incident_VerifiedRelease") + ":";
                this.lblDescription.Text        = StaticFuncs.getCultureResource.GetString("app_General_Description") + ":";
                this.lblExpanderResolution.Text = StaticFuncs.getCultureResource.GetString("app_General_ExpanderResolution");
                this.lblExpanderSchedule.Text   = StaticFuncs.getCultureResource.GetString("app_General_ExpanderSchedule");
                this.lblPerComplete.Text        = StaticFuncs.getCultureResource.GetString("app_General_PerComplete") + ":";
                this.lblStartDate.Text          = StaticFuncs.getCultureResource.GetString("app_General_StartDate") + ":";
                this.lblEndDate.Text            = StaticFuncs.getCultureResource.GetString("app_General_EndDate") + ":";
                this.lblEstEffort.Text          = StaticFuncs.getCultureResource.GetString("app_General_EstEffort") + ":";
                this.lblHours4.Text             = StaticFuncs.getCultureResource.GetString("app_General_Hours");
                this.lblMins4.Text              = StaticFuncs.getCultureResource.GetString("app_General_Minutes");
                this.lblProjEffort.Text         = StaticFuncs.getCultureResource.GetString("app_General_ProjEffort") + ":";
                this.lblHours1.Text             = StaticFuncs.getCultureResource.GetString("app_General_Hours");
                this.lblMins1.Text              = StaticFuncs.getCultureResource.GetString("app_General_Minutes");
                this.lblActEffort.Text          = StaticFuncs.getCultureResource.GetString("app_General_ActEffort") + ":";
                this.lblHours2.Text             = StaticFuncs.getCultureResource.GetString("app_General_Hours");
                this.lblMins2.Text              = StaticFuncs.getCultureResource.GetString("app_General_Minutes");
                this.lblRemEffort.Text          = StaticFuncs.getCultureResource.GetString("app_General_RemEffort") + ":";
                this.lblHours3.Text             = StaticFuncs.getCultureResource.GetString("app_General_Hours");
                this.lblMins3.Text              = StaticFuncs.getCultureResource.GetString("app_General_Minutes");
                //this.lblExpanderCustom.Text = StaticFuncs.getCultureResource.GetString("app_General_ExpanderCustom");
                this.lblExpanderAttachments.Text    = StaticFuncs.getCultureResource.GetString("app_General_Attachments");
                this.lblAddNewResolution.Text       = StaticFuncs.getCultureResource.GetString("app_General_AddNewComment") + ":";
                this.btnConcurrencyMergeNo.Content  = StaticFuncs.getCultureResource.GetString("app_General_Refresh");
                this.btnConcurrencyMergeYes.Content = StaticFuncs.getCultureResource.GetString("app_General_Merge");
                this.lblMergeConcurrency.Text       = StaticFuncs.getCultureResource.GetString("app_Incident_AskMergeConcurrency");
                this.btnConcurrencyRefresh.Content  = StaticFuncs.getCultureResource.GetString("app_General_Refresh");
                this.lblNoMergeConcurrency.Text     = StaticFuncs.getCultureResource.GetString("app_Incident_NoMergeConcurrency");

                //Load set vars..
                this._WorkflowFields = this.workflow_GenerateStandardFields();
            }
            catch (Exception ex)
            {
                Logger.LogMessage(ex, "InitializeComponent()");
                MessageBox.Show(StaticFuncs.getCultureResource.GetString("app_General_UnexpectedError"), StaticFuncs.getCultureResource.GetString("app_General_ApplicationShortName"), MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
        /// <summary>Copies over our values from the form into an Incident object.</summary>
        /// <returns>A new RemoteIncident, or Null if error.</returns>
        private RemoteIncident save_GetFromFields()
        {
            const string METHOD = CLASS + "save_GetFromFields()";

            RemoteIncident retIncident = null;

            try
            {
                retIncident = new RemoteIncident();

                //*Fixed fields..
                retIncident.IncidentId = this._Incident.IncidentId;
                retIncident.ProjectId  = this._Incident.ProjectId;
                if (this._Incident.CreationDate.HasValue)
                {
                    retIncident.CreationDate = this._Incident.CreationDate.Value.ToUniversalTime();
                }
                retIncident.LastUpdateDate  = this._Incident.LastUpdateDate.ToUniversalTime();
                retIncident.ConcurrencyDate = this._Incident.ConcurrencyDate;

                //*Standard fields..
                retIncident.Name              = this.cntrlIncidentName.Text.Trim();
                retIncident.IncidentTypeId    = ((RemoteIncidentType)this.cntrlType.SelectedItem).IncidentTypeId;
                retIncident.IncidentStatusId  = ((this._IncSelectedStatus.HasValue) ? this._IncSelectedStatus.Value : this._IncCurrentStatus.Value);
                retIncident.OpenerId          = ((RemoteUser)this.cntrlDetectedBy.SelectedItem).UserId;
                retIncident.OwnerId           = ((RemoteUser)this.cntrlOwnedBy.SelectedItem).UserId;
                retIncident.PriorityId        = ((RemoteIncidentPriority)this.cntrlPriority.SelectedItem).PriorityId;
                retIncident.SeverityId        = ((RemoteIncidentSeverity)this.cntrlSeverity.SelectedItem).SeverityId;
                retIncident.DetectedReleaseId = ((RemoteRelease)this.cntrlDetectedIn.SelectedItem).ReleaseId;
                retIncident.ResolvedReleaseId = ((RemoteRelease)this.cntrlResolvedIn.SelectedItem).ReleaseId;
                retIncident.VerifiedReleaseId = ((RemoteRelease)this.cntrlVerifiedIn.SelectedItem).ReleaseId;
                if (this._isDescChanged)
                {
                    retIncident.Description = this.cntrlDescription.HTMLText;
                }
                else
                {
                    retIncident.Description = this._Incident.Description;
                }

                //*Schedule fields..
                if (this.cntrlStartDate.SelectedDate.HasValue)
                {
                    retIncident.StartDate = this.cntrlStartDate.SelectedDate.Value.ToUniversalTime();
                }
                if (this.cntrlEndDate.SelectedDate.HasValue)
                {
                    retIncident.ClosedDate = this.cntrlEndDate.SelectedDate.Value.ToUniversalTime();
                }
                retIncident.EstimatedEffort = StaticFuncs.GetMinutesFromValues(this.cntrlEstEffortH.Text, this.cntrlEstEffortM.Text);
                retIncident.ActualEffort    = StaticFuncs.GetMinutesFromValues(this.cntrlActEffortH.Text, this.cntrlActEffortM.Text);
                retIncident.RemainingEffort = StaticFuncs.GetMinutesFromValues(this.cntrlRemEffortH.Text, this.cntrlRemEffortM.Text);

                //Custom Properties
                retIncident.CustomProperties = this.cntCustomProps.GetCustomProperties();
            }
            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);
                retIncident = null;
            }

            //Return
            return(retIncident);
        }