Exemplo n.º 1
0
        private SubjectPosition ConstructSubject(Dictionary <string, object> KeyValueData)
        {
            object CausesOfLossObject;
            HashSet <SymbolicValue> CausesOfLoss = new HashSet <SymbolicValue>();

            if (KeyValueData.TryGetValue("CausesOfLoss", out CausesOfLossObject))
            {
                CausesOfLoss.UnionWith(ToHashSet(CausesOfLossObject.ToString()));
            }

            object ScheduleObject;
            HashSet <SymbolicValue> ScheduleSymbols = new HashSet <SymbolicValue>();

            if (KeyValueData.TryGetValue("Schedule", out ScheduleObject))
            {
                ScheduleSymbols.UnionWith(ToHashSet(ScheduleObject.ToString()));
            }
            Schedule _Schedule = new Schedule(ScheduleSymbols);

            object ExposureTypesObject;
            HashSet <SymbolicValue> ExposureTypes = new HashSet <SymbolicValue>();

            if (KeyValueData.TryGetValue("ExposureTypes", out ExposureTypesObject))
            {
                ExposureTypes.UnionWith(ToHashSet(ExposureTypesObject.ToString()));
            }

            bool Resolution = false;

            if (KeyValueData.ContainsKey("PerRisk"))
            {
                Resolution = bool.Parse((string)KeyValueData["PerRisk"]);
            }

            if ((CausesOfLoss.Count == 0) && (ScheduleSymbols.Count == 0) && (ExposureTypes.Count == 0))
            {
                SubjectPosition CoverSubjectPosition = new SubjectPosition();
                if (this.ContractSubject is Subject)
                {
                    CoverSubjectPosition = new Subject(this.ContractSubject as Subject);
                    ((Subject)CoverSubjectPosition).PerRisk = Resolution;
                }
                else if (this.ContractSubject is NetPosition)
                {
                    CoverSubjectPosition = new NetPosition(this.ContractSubject as NetPosition);
                }
                else if (this.ContractSubject is SubjectPosition)
                {
                    CoverSubjectPosition = new SubjectPosition(this.ContractSubject as SubjectPosition);
                }

                return(CoverSubjectPosition);
            }


            return(new Subject(UniversalSubject, _Schedule, CausesOfLoss, ExposureTypes, ResolvedSchedule, CoverageIdAttrMap, Resolution));
        }
Exemplo n.º 2
0
 public NetPosition(NetPosition CopyFromNetPosition) :
     this(CopyFromNetPosition.GrossPosition, CopyFromNetPosition.CededPosition)
 {
 }