private List<Data.SearchableData> populatePrivateRequirements() { try { var preq = (from r in dataSet.PrivRequirements from rel in dataSet.RelationProjectPrivateSecurityRequirement where rel.ProjectID == Data.SelectedProject.Instance.Project.ProjectID && rel.PrivateRequirementID == r.Requirement.PrivateRequirementsID select r.Requirement).ToList<PrivateRequirement>(); //Add data that does not exist in the private requirement... List<Data.SearchableData> data = new List<Data.SearchableData>(); foreach (PrivateRequirement pr in preq) { Data.SearchableData newData = new Data.SearchableData(); //Because of the cast, we need to check if the value is null. if (pr.SelectedExample != null) newData.selectedExample = (int)pr.SelectedExample; if (pr.Priority != null) newData.Priority = (int)pr.Priority; if (pr.RequirementID != null) { var req = (from r in dataSet.Requirements where r.Requirement.RequirementID == pr.RequirementID select r.Requirement).FirstOrDefault<Requirement>(); newData.ObjectType = (int)Data.SearchableData.types.requirement; newData.ID = req.RequirementID; newData.Name = req.Name; newData.Aliases = req.Aliases; newData.Description = req.Description; newData.CommonAttacks = req.CommonAttacks; newData.Issues = req.Issues; newData.Problem = req.Problem; newData.Solution = req.Solution; newData.References = req.References; newData.Domain = req.Domain; newData.Examples = req.Examples; newData.SuggestAsPublic = false; } else { //Populate newData newData.ID = pr.PrivateRequirementsID; newData.Name = pr.Name; newData.Problem = pr.Problem; newData.Solution = pr.Solution; newData.Aliases = pr.Aliases; newData.Description = pr.Description; newData.CommonAttacks = pr.CommonAttacks; newData.Issues = pr.Issues; newData.References = pr.References; newData.Domain = pr.Domain; newData.Examples = pr.Examples; newData.ObjectType = (int)Data.SearchableData.types.privateRequirement; if(pr.SuggestAsPublic != null) newData.SuggestAsPublic = (bool)pr.SuggestAsPublic; } Example exampleText = null; if (newData.Examples != null) //Get text for exampleText(To show in leftList) { exampleText = (from example in newData.Examples where example.ExampleID == pr.SelectedExample select example).FirstOrDefault<Example>(); } else { newData.Examples = new ObservableCollection<Example>(); } if (exampleText != null) { newData.SelectedRequirementText = exampleText.Name +" "+ exampleText.ExampleID; } else { newData.SelectedRequirementText = "No selected example"; } if (newData.Priority == 1) newData.PriorityText = "High"; else if (newData.Priority == 2) newData.PriorityText = "Medium"; else if (newData.Priority == 3) newData.PriorityText = "Low"; else newData.PriorityText = "Not set"; data.Add(newData); } return data; } catch (Exception) { return null; } }
private void leftList_SelectionChanged(object sender, SelectionChangedEventArgs e) { try { if (e.AddedItems.Count > 0) //Only when focus is gained, not lost. { ListBox lb = sender as ListBox; selectedRequirement = lb.SelectedItem as Data.SearchableData; requirementID.DataContext = selectedRequirement; RequirementName.DataContext = selectedRequirement; RequirementAliases.DataContext = selectedRequirement; RequirementDescription.DataContext = selectedRequirement; RequirementProblem.DataContext = selectedRequirement; RequirementSolution.DataContext = selectedRequirement; RequirementPriority.DataContext = selectedRequirement; References_PSRP.DataContext = selectedRequirement; Domain_PSRP.DataContext = selectedRequirement; suggestAsPublicCheckBox.DataContext = selectedRequirement; foreach (Example ex in selectedRequirement.Examples) { ex.Name = ex.Name + " " + ex.ExampleID; } RequirementExamples.ItemsSource = selectedRequirement.Examples; if (selectedListBox != null && !selectedListBox.Equals(lb)) { selectedListBox.SelectedIndex = -1; } selectedListBox = lb; HideInfoPanels(); PrivateSecurityRequirement.Visibility = Visibility.Visible; } } catch (Exception) { } }