using System; using System.Collections.Generic; using System.Linq; using TradeBlotter.Views; using MarketData.MarketDataModel; using MarketData.Generator; using Microsoft.Research.DynamicDataDisplay.DataSources; using MarketData.Numerical; namespace TradeBlotter.Model { public class StopLimitCompositeModel { private StopLimitCompositeModel() { } public static CompositeDataSource CreateCompositeDataSource(StopLimits stopLimits) { if(null==stopLimits) return null; CompositeDataSource compositeDataSource; var xData=new EnumerableDataSource(stopLimits.Select(x => x.EffectiveDate.Date)); xData.SetXMapping(x => (x.Ticks/10000000000.0)); var yData=new EnumerableDataSource(stopLimits.Select(y => y.StopPrice)); yData.SetYMapping(y => y); compositeDataSource=xData.Join(yData); return compositeDataSource; } public static CompositeDataSource CreateCompositeDataSource(DateTime xSource,StopLimits stopLimits) { if(null==stopLimits) return null; CompositeDataSource compositeDataSource; List stopLimitDates = new List(); foreach(StopLimit stopLimit in stopLimits) { stopLimitDates.Add(stopLimit.EffectiveDate); } var xData=new EnumerableDataSource(stopLimitDates.Select(x => x.Date)); xData.SetXMapping(x => (x.Ticks/10000000000.0)); var yData=new EnumerableDataSource(stopLimits.Select(y => y.StopPrice)); yData.SetYMapping(y => y); compositeDataSource=xData.Join(yData); return compositeDataSource; } } }