public XlMarket(MarketInfo marketInfo) { MarketDataDefinition[] rawDefinitions; MarketDataDefinition[] ripeDefinitions; _marketInfo = marketInfo; marketInfo.GetClassifiedDefinitions(out rawDefinitions, out ripeDefinitions); _mktDataDict = ripeDefinitions.ToDictionary(x => x.Name, x => x); foreach (var marketDataDefinition in rawDefinitions) { _mktDataDict[marketDataDefinition.Name] = marketDataDefinition; } var historicalIndexRates = new Dictionary <IndexType, SortedDictionary <Date, double> >(); if (marketInfo.HistoricalIndexRates != null && marketInfo.HistoricalIndexRates.Any()) { foreach (var historicalIndexKey in marketInfo.HistoricalIndexRates.Keys) { var indexKey = historicalIndexKey.ToIndexType(); var historicalIndexDateDic = new SortedDictionary <Date, double>(); foreach (var historicalIndexDateKey in marketInfo.HistoricalIndexRates[historicalIndexKey].Keys) { historicalIndexDateDic.Add(historicalIndexDateKey.ToDate(), marketInfo.HistoricalIndexRates[historicalIndexKey][historicalIndexDateKey]); } historicalIndexRates.Add(indexKey, historicalIndexDateDic); } } else { historicalIndexRates = XlUdf.HistoricalIndexRates; } _qdpMarket = new QdpMarket(marketInfo.MarketName, marketInfo.ReferenceDate.ToDate(), historicalIndexRates, ripeDefinitions); var result = _qdpMarket.UpdateMarketRawData(rawDefinitions); result.WaitTillFinished(); }