void PopulateTree() { // Don't do this if we don't yet have a language selected (e.g., potentially // being called during cmdLoad if (-1 == iLanguage) { return; } LocGroup FirstGroup = null; Tree.Nodes.Clear(); foreach (LocGroup group in DB.Groups) { _PopulateTree(Tree.Nodes, group); if (ShouldDisplayInTree(group) && null == FirstGroup) { FirstGroup = group; } } if (null == FirstGroup) { FirstGroup = DB.Groups[0]; } Group = FirstGroup; CalculateCounts(); }
private void cmdTreeSelChanged(object sender, TreeViewEventArgs e) { // Save any edits that have been done HarvestChanges(); // Get the node's item, if any LocItem item = Tree.SelectedNode.Tag as LocItem; // If no item, then clear the controls if (null == item) { ClearItemControls(); LocGroup g = Tree.SelectedNode.Tag as LocGroup; if (null != g) { Group = g; } return; } // Get the group from this node's parent LocGroup group = Tree.SelectedNode.Parent.Tag as LocGroup; if (null == group) { return; } Group = group; // Otherwise, populate the controls Item = item; }
void _CalculateCounts(LocGroup group) { if (!ShouldDisplayInTree(group)) { return; } foreach (LocGroup sub in group.Groups) { _CalculateCounts(sub); } foreach (LocItem item in group.Items) { if (!ShouldDisplayInTree(item)) { continue; } ++m_cItemsTotal; if (ItemNeedsAttention(item)) { ++m_cItemsRemaining; } } }
void _PopulateTree(TreeNodeCollection nodes, LocGroup group) { // Determine whether this node is needed if (!ShouldDisplayInTree(group)) { return; } // Add the node for this group TreeNode node = nodes.Add(group.Title); node.Name = group.ID; node.ToolTipText = group.Title; node.Tag = group; node.ForeColor = (GroupNeedsAttention(group) ? Color.Red : Color.Navy); // Recurse to add any subnodes for the subgroups foreach (LocGroup sub in group.Groups) { _PopulateTree(node.Nodes, sub); } // Add the items foreach (LocItem item in group.Items) { if (!ShouldDisplayInTree(item)) { continue; } // Create the node with this text TreeNode nodeItem = node.Nodes.Add(item.English); // The node's name is the item's unique ID nodeItem.Name = item.ID; // The tooltip hels when everything can't fit on the screen nodeItem.ToolTipText = item.English; // We'll use the tag to get back to the correct item nodeItem.Tag = item; // The forecolor highlights which items need work nodeItem.ForeColor = (ItemNeedsAttention(item) ? Color.Red : Color.Navy); } node.Collapse(true); }
bool GroupNeedsAttention(LocGroup group) { foreach (LocItem item in group.Items) { if (ItemNeedsAttention(item)) { return(true); } } foreach (LocGroup sub in group.Groups) { if (GroupNeedsAttention(sub)) { return(true); } } return(false); }
bool ShouldDisplayInTree(LocGroup group) { // Filter Option: Show All if (FilterCombo.Text == c_ShowAll) { return(true); } // Filter Option: All Needing Attention if (FilterCombo.Text == c_ThoseNeedingAttention) { return(GroupNeedsAttention(group)); } // Filter Option: Translator Items if (FilterCombo.Text == c_TranslatorItems) { return(group.TranslatorAudience); } // Filter Option: Translator Items Needing Attention if (FilterCombo.Text == c_TranslatorItemsNeedingAttention) { return(group.TranslatorAudience && GroupNeedsAttention(group)); } // Filter Option: Advisor Items if (FilterCombo.Text == c_AdvisorItems) { return(!group.TranslatorAudience); } // Filter Option: Advisor Items Needing Attention if (FilterCombo.Text == c_AdvisorItemsNeedingAttention) { return(!group.TranslatorAudience && GroupNeedsAttention(group)); } // Unknown filter return(true); }
public void GetPrimaryData() { if (TreatyExposure) { throw new InvalidOperationException("Cannot use this method to get exposure data for reinsurance contract"); } EDSDataExtract.ExtractRiteMap(); Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); var LocationGroups = EDSDataExtract.CoverageIdAttrMap.GroupBy(pair => pair.Value.RITExposureId); foreach (var LocGroup in LocationGroups) { RITE newRITE = BuildRITE(LocGroup.First()); _rites.Add(newRITE); _ritesDict.Add(LocGroup.Key, newRITE); foreach (KeyValuePair <long, RITEAttributes> pair in LocGroup) { RITCharacteristic newRITChar = BuildRITCharacteristic(pair); _characteristics.Add(newRITChar); _characteristicsDict.Add(pair.Key, newRITChar); newRITE.AddCharacteristic(newRITChar); } } foreach (KeyValuePair <string, Subschedule> EDSschedule in EDSDataExtract.SubSchedule) { ScheduleOfRITEs newSchedule; HashSet <long> Ids = (EDSschedule.Value.Ids != null) ? EDSschedule.Value.Ids : new HashSet <long>(EDSschedule.Value.CompressedIds.Enumerable()); if (EDSschedule.Value.Type == SubscheduleType.RITCHARACTERISTICS) { newSchedule = BuildScheduleFromRITChars2(EDSschedule.Key, Ids); } else if (EDSschedule.Value.Type == SubscheduleType.RITEXPOSURES) { newSchedule = BuildScheduleFromRITs2(EDSschedule.Key, Ids); } else { throw new InvalidOperationException("Cannot support building schedules of type: " + EDSschedule.Value.Type.ToString()); } _schedules.Add(newSchedule); _schedulesDict.Add(newSchedule.Name, newSchedule); } stopwatch.Stop(); ////////////////////////OLD OLD OLD Version////////////////////////////////// //_schedules.Clear(); //_rites.Clear(); //_characteristics.Clear(); //stopwatch.Reset(); //stopwatch.Start(); //foreach (KeyValuePair<long, RITEAttributes> RiteAttribute in EDSDataExtract.CoverageIdAttrMap) //{ // RITCharacteristic newRITChar = BuildRITCharacteristic(RiteAttribute); // _characteristics.Add(newRITChar); // RITE parentRITE = _rites.Where(rite => rite.ExposureID == RiteAttribute.Value.RITExposureId).FirstOrDefault(); // if (parentRITE != null) // { // parentRITE.AddCharacteristic(newRITChar); // } // else // { // RITE newRITE = BuildRITE(RiteAttribute); // _rites.Add(newRITE); // newRITE.AddCharacteristic(newRITChar); // } //} //foreach (KeyValuePair<string, Subschedule> EDSschedule in EDSDataExtract.SubSchedule) //{ // ScheduleOfRITEs newSchedule; // HashSet<long> Ids = (EDSschedule.Value.Ids != null) ? EDSschedule.Value.Ids : new HashSet<long>(EDSschedule.Value.CompressedIds.Enumerable()); // if (EDSschedule.Value.Type == SubscheduleType.RITCHARACTERISTICS) // newSchedule = BuildScheduleFromRITChars(EDSschedule.Key, Ids); // else if (EDSschedule.Value.Type == SubscheduleType.RITEXPOSURES) // newSchedule = BuildScheduleFromRITs(EDSschedule.Key, Ids); // else // throw new InvalidOperationException("Cannot support building schedules of type: " + EDSschedule.Value.Type.ToString()); // _schedules.Add(newSchedule); //} //stopwatch.Stop(); }
//public ExposureDataAdaptor(ContractExposure contractExposure, NGFMPrototype _ParsingAPI) //{ // //ParsingAPI = _ParsingAPI; // UseJSContext = false; // _contractExposure = contractExposure; // _contractJSON = GetJSONForContract(); // EDSDataExtract = new ExposureDataExtractor(_contractExposure); // _characteristics = new HashSet<RITCharacteristic>(); // _rites = new HashSet<RITE>(); // _schedules = new HashSet<ScheduleOfRITEs>(); // _characteristicsDict = new Dictionary<long, RITCharacteristic>(); // _ritesDict = new Dictionary<long, RITE>(); // _schedulesDict = new Dictionary<string, ScheduleOfRITEs>(); // if (_contractExposure.ContractType.IsReinsuranceContract()) // TreatyExposure = true; // else // TreatyExposure = false; //} public void GetPrimaryData() { if (TreatyExposure) { throw new InvalidOperationException("Cannot use this method to get exposure data for reinsurance contract"); } EDSDataExtract.ExtractRiteMap(); Dictionary <long, ExtractRITCharInfo> CoverageIdAttrMap = EDSDataExtract.CoverageIdAttrMap; if (UseAggregatedRITEs) { CoverageIdAttrMap = AggregateRITChars(CoverageIdAttrMap); } else { foreach (KeyValuePair <long, ExtractRITCharInfo> pair in CoverageIdAttrMap) { RiskCharIDtoAggregateID.Add(pair.Key, pair.Key); AggregateIDtoDisaggIDs.Add(pair.Key, new HashSet <long> { pair.Key }); } } #region old RITE aggreagation code //foreach (var LocGroup in LocationGroups) //{ // if (UseAggregatedRITEs) // { // long RiteID = LocGroup.First().Value.RITExposureId; // long OriginalRiteID = (long)LocGroup.First().Value.OriginalRITExposureId; // if (RiteID == OriginalRiteID) // { // RITE newRITE = BuildRITE(LocGroup.First()); // _rites.Add(newRITE); // _ritesDict.Add(LocGroup.Key, newRITE); // foreach (KeyValuePair<long, ExtractRITCharInfo> pair in LocGroup) // { // RITCharacteristic newRITChar = BuildRITCharacteristic(pair); // _characteristics.Add(newRITChar); // _characteristicsDict.Add(pair.Key, newRITChar); // newRITE.AddCharacteristic(newRITChar); // } // } // else // { // foreach (KeyValuePair<long, ExtractRITCharInfo> pair in LocGroup) // { // RiskCharIDtoAggregateID.Add(pair.Key, (long)pair.Value.OriginalRITECharacteristicId); // } // } // } // else // { // RITE newRITE = BuildRITE(LocGroup.First()); // _rites.Add(newRITE); // _ritesDict.Add(LocGroup.Key, newRITE); // foreach (KeyValuePair<long, ExtractRITCharInfo> pair in LocGroup) // { // RITCharacteristic newRITChar = BuildRITCharacteristic(pair); // _characteristics.Add(newRITChar); // _characteristicsDict.Add(pair.Key, newRITChar); // newRITE.AddCharacteristic(newRITChar); // } // } //} #endregion var LocationGroups = CoverageIdAttrMap.GroupBy(pair => pair.Value.RITExposureId); foreach (var LocGroup in LocationGroups) { RITE newRITE = BuildRITE(LocGroup.First()); _rites.Add(newRITE); _ritesDict.Add(LocGroup.Key, newRITE); foreach (KeyValuePair <long, ExtractRITCharInfo> pair in LocGroup) { RITCharacteristic newRITChar = BuildRITCharacteristic(pair); _characteristics.Add(newRITChar); _characteristicsDict.Add(pair.Key, newRITChar); newRITE.AddCharacteristic(newRITChar); } } foreach (KeyValuePair <string, Subschedule> EDSschedule in EDSDataExtract.SubSchedule) { ScheduleOfRITEs newSchedule; HashSet <long> Ids = (EDSschedule.Value.Ids != null) ? EDSschedule.Value.Ids : new HashSet <long>(EDSschedule.Value.CompressedIds.Enumerable()); if (EDSschedule.Value.Type == SubscheduleType.RITCHARACTERISTICS) //|| EDSschedule.Value.Name == "Blanket_FL" || EDSschedule.Value.Name == "Blanket_EQ" || EDSschedule.Value.Name == "Blanket_WS") //Sunny Hack { newSchedule = BuildScheduleFromRITChars2(EDSschedule.Key, Ids); } else if (EDSschedule.Value.Type == SubscheduleType.RITEXPOSURES) { try { newSchedule = BuildScheduleFromRITs2(EDSschedule.Key, Ids); } catch (IndexOutOfRangeException exp) { newSchedule = BuildScheduleFromRITChars2(EDSschedule.Key, Ids); } } else { throw new InvalidOperationException("Cannot support building schedules of type: " + EDSschedule.Value.Type.ToString()); } _schedules.Add(newSchedule); _schedulesDict.Add(newSchedule.Name, newSchedule); } }