private string GetExpression(FixingNode fixingNode, IDictionary <IFixing, string> fixingRefs) { string fixingDesc = RetrieveStringParameter(fixingNode.FixingId); DateTime fixingDate = RetrieveDateParameter(fixingNode.ScheduleId); IFixing fixing = FixingParser.Parse(fixingDesc, fixingDate); return(FixingReference(fixing, fixingRefs)); }
private static Tuple <int, int> FindFixingIndex(IFixing[][] fixings, IFixing searchedFixing) { var dateIndex = fixings.Map(fs => fs.First().Date) .FindIndex(searchedFixing.Date); var fixingIndex = fixings[dateIndex].FindIndex(searchedFixing); return(new Tuple <int, int>(dateIndex, fixingIndex)); }
private string FixingReference(IFixing fixing, IDictionary <IFixing, string> fixingRefs) { string fixingRef; if (!fixingRefs.TryGetValue(fixing, out fixingRef)) { fixingRef = string.Format("{0}[{1}]", FixingArrayId, fixingRefs.Count); fixingRefs.Add(fixing, fixingRef); } return(fixingRef); }
private static bool TryParseAsset(DateTime date, string[] args, out IFixing asset) { Currency currency = null; bool validAsset = args.Length == 2 && Currency.TryParse(args[1], out currency); if (!validAsset) { asset = null; return(false); } var assetId = new AssetId(args[0], currency); asset = new EquitySpot(date, assetId); return(true); }