public static ViewCalculationConfiguration FromFudgeMsg(IFudgeFieldContainer ffc, IFudgeDeserializer deserializer) { var name = ffc.GetValue <string>("name"); List <ValueRequirement> specificRequirements = GetList <ValueRequirement>(ffc, "specificRequirement", deserializer); //TODO MAP deserializer by magic var portfolioRequirementsBySecurityType = new Dictionary <string, HashSet <Tuple <string, ValueProperties> > >(); foreach (var portfolioReqField in ffc.GetAllByName("portfolioRequirementsBySecurityType")) { const string securitytypeKey = "securityType"; var securityType = ((IFudgeFieldContainer)portfolioReqField.Value).GetValue <string>(securitytypeKey); var enumerable = ((IFudgeFieldContainer)portfolioReqField.Value).GetAllByName("portfolioRequirement").Select(f => GetReqPair(f, deserializer)); portfolioRequirementsBySecurityType.Add(securityType, new HashSet <Tuple <string, ValueProperties> >(enumerable)); } var defaultProperties = deserializer.FromField <ValueProperties>(ffc.GetByName("defaultProperties")); var deltaDefinition = deserializer.FromField <DeltaDefinition>(ffc.GetByName("deltaDefinition")); IResolutionRuleTransform transform = null; IFudgeField transformField = ffc.GetByName("resolutionRuleTransform"); if (transformField != null) { transform = deserializer.FromField <IResolutionRuleTransform>(transformField); } return(new ViewCalculationConfiguration(name, specificRequirements, portfolioRequirementsBySecurityType, deltaDefinition, defaultProperties, transform)); }
public ViewCalculationConfiguration(string name, IEnumerable <ValueRequirement> specificRequirements, Dictionary <string, HashSet <Tuple <string, ValueProperties> > > portfolioRequirementsBySecurityType, DeltaDefinition deltaDefinition, ValueProperties defaultProperties, IResolutionRuleTransform resolutionRuleTransform) { ArgumentChecker.NotNull(deltaDefinition, "deltaDefinition"); _name = name; _specificRequirements = specificRequirements; _portfolioRequirementsBySecurityType = portfolioRequirementsBySecurityType; _defaultProperties = defaultProperties; _resolutionRuleTransform = resolutionRuleTransform; _deltaDefinition = deltaDefinition; }
public static void AssertSensibleValue(IResolutionRuleTransform transform) { Assert.NotNull(transform); Assert.True(transform is IdentityResolutionRuleTransform || transform is SimpleResolutionRuleTransform); }