private void updateSelectedRequirement(PrivateRequirment_PatternsAndCategoriesAndExamples privRequirementChell)
        {
            privRequirementChell.Requirement.Name = selectedRequirement.Name;
            privRequirementChell.Requirement.Issues = selectedRequirement.Issues;
            privRequirementChell.Requirement.Problem = selectedRequirement.Problem;
            privRequirementChell.Requirement.Solution = selectedRequirement.Solution;
            privRequirementChell.Requirement.Aliases = selectedRequirement.Aliases;
            privRequirementChell.Requirement.CommonAttacks = selectedRequirement.CommonAttacks;
            privRequirementChell.Requirement.Description = selectedRequirement.Description;
            privRequirementChell.Requirement.References = selectedRequirement.References;
            privRequirementChell.Requirement.Domain = selectedRequirement.Domain;
            privRequirementChell.Requirement.SuggestAsPublic = selectedRequirement.SuggestAsPublic;
            privRequirementChell.Requirement.RequirementID = null;

            ObservableCollection<Example> exampleList = new ObservableCollection<Example>();
            foreach (Example ex in selectedRequirement.Examples)
            {

                if (ex.ExampleID != 0 && ex.RequirementID != null)
                {
                    exampleList.Add(new Example
                    {
                        Name = ex.Name,
                        PrivateRequirementID = privRequirementChell.Requirement.PrivateRequirementsID
                    });
                }
                else
                {
                    ex.PrivateRequirementID = privRequirementChell.Requirement.PrivateRequirementsID;
                    exampleList.Add(ex);
                }
            }

            privRequirementChell.Examples = exampleList;

            String selItem = RequirementPriorityEdit.SelectedItem as String;

            if (selItem != null)
            {
                if (selItem.Equals("Heigh"))
                    privRequirementChell.Requirement.Priority = 1;
                else if (selItem.Equals("Medium"))
                    privRequirementChell.Requirement.Priority = 2;
                else if (selItem.Equals("Low"))
                    privRequirementChell.Requirement.Priority = 3;
            }
            //privRequirementChell.Requirement.Priority = 1; //Default priority..

            ProgressBar.Visibility = Visibility.Visible;

            proxy.UpdatePSRPAsync(Session.Instance.SessionID, privRequirementChell);
        }
        private void requirementInfoExamples_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            ListBox lb = (ListBox)sender;
            Example ex = lb.SelectedItem as Example;

            //Update database with id.
            if (ex != null && ex.ExampleID != selectedRequirement.selectedExample)
            {
                PrivateRequirment_PatternsAndCategoriesAndExamples privRequirementChell = new PrivateRequirment_PatternsAndCategoriesAndExamples();
                if (selectedRequirement.ObjectType == (int)Data.SearchableData.types.privateRequirement)
                {
                    privRequirementChell.Requirement = (from pr in dataSet.PrivRequirements
                                                        where pr.Requirement.PrivateRequirementsID == selectedRequirement.ID
                                                        select pr.Requirement).SingleOrDefault<PrivateRequirement>();

                }
                else if (selectedRequirement.ObjectType == (int)Data.SearchableData.types.requirement)
                {
                    privRequirementChell.Requirement = (from pr in dataSet.PrivRequirements
                                                        from rel in dataSet.RelationProjectPrivateSecurityRequirement
                                                        where pr.Requirement.RequirementID == selectedRequirement.ID &&
                                                        rel.PrivateRequirementID == pr.Requirement.PrivateRequirementsID &&
                                                        rel.ProjectID == Data.SelectedProject.Instance.Project.ProjectID
                                                        select pr.Requirement).FirstOrDefault<PrivateRequirement>();
                }

                privRequirementChell.Requirement.SelectedExample = ex.ExampleID;

                proxy.UpdatePSRPAsync(Session.Instance.SessionID, privRequirementChell);

                selectedRequirement.SelectedRequirementText = ex.Name;
                selectedRequirement.selectedExample = ex.ExampleID;
            }
        }
        private void SavePrivateRequirementEdit(object sender, RoutedEventArgs e)
        {
            PrivateSecurityRequirementEdit.Visibility = Visibility.Collapsed;
            PrivateSecurityRequirement.Visibility = Visibility.Visible;

                PrivateRequirment_PatternsAndCategoriesAndExamples privRequirementChell = new PrivateRequirment_PatternsAndCategoriesAndExamples();
                if (selectedRequirement.ObjectType == (int)Data.SearchableData.types.privateRequirement)
                {
                    privRequirementChell.Requirement = (from pr in dataSet.PrivRequirements
                                                        where pr.Requirement.PrivateRequirementsID == selectedRequirement.ID
                                                        select pr.Requirement).SingleOrDefault<PrivateRequirement>();

                    updateSelectedRequirement(privRequirementChell);
                }
                else if (selectedRequirement.ObjectType == (int)Data.SearchableData.types.requirement)
                {
                    privRequirementChell.Requirement = (from pr in dataSet.PrivRequirements
                                                        from rel in dataSet.RelationProjectPrivateSecurityRequirement
                                                        where pr.Requirement.RequirementID == selectedRequirement.ID &&
                                                        rel.PrivateRequirementID == pr.Requirement.PrivateRequirementsID &&
                                                        rel.ProjectID == Data.SelectedProject.Instance.Project.ProjectID
                                                        select pr.Requirement).FirstOrDefault<PrivateRequirement>();

                    //Because the type is requirement, we want to create a private requirement
                    ProgressBar.Visibility = Visibility.Visible;

                    proxy.createPrivateRequirementByRequirementIDAsync(Session.Instance.SessionID, selectedRequirement.ID, privRequirementChell.Requirement.PrivateRequirementsID);
                }
        }
        void proxy_createPrivateRequirementByRequirementIDCompleted(object sender, createPrivateRequirementByRequirementIDCompletedEventArgs e)
        {
            PrivateRequirment_PatternsAndCategoriesAndExamples privRequirementChell = new PrivateRequirment_PatternsAndCategoriesAndExamples();
            privRequirementChell.Requirement = (from pr in dataSet.PrivRequirements
                                                from rel in dataSet.RelationProjectPrivateSecurityRequirement
                                                where pr.Requirement.RequirementID == selectedRequirement.ID &&
                                                rel.PrivateRequirementID == pr.Requirement.PrivateRequirementsID &&
                                                rel.ProjectID == Data.SelectedProject.Instance.Project.ProjectID
                                                select pr.Requirement).FirstOrDefault<PrivateRequirement>();

            updateSelectedRequirement(privRequirementChell);
        }