Example #1
0
        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();
        }
Example #2
0
        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;
        }
Example #3
0
        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;
                }
            }
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }
Example #6
0
        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();
        }
Example #8
0
        //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);
            }
        }