using MarketData.Utils; using System.Text; /// /// This StopLimit class is used for database persistence /// namespace MarketData.MarketDataModel { public class StopLimitConstants { public static readonly String STOP_QUOTE="Stop Quote"; } public class StopLimits:List { public StopLimits() { } public StopLimits(List stopLimits) { foreach(StopLimit stopLimit in stopLimits) Add(stopLimit); } public NVPCollections ToNVPCollections() { NVPCollections nvpCollections=new NVPCollections(); foreach(StopLimit stopLimit in this) { nvpCollections.Add(stopLimit.ToNVPCollection()); } return nvpCollections; } public static StopLimits FromNVPCollections(NVPCollections nvpCollections) { StopLimits stopLimits=new StopLimits(); foreach(NVPCollection nvpCollection in nvpCollections) { stopLimits.Add(StopLimit.FromNVPCollection(nvpCollection)); } return stopLimits; } public void AddFromNVPCollection(NVPCollection nvpCollection) { Add(StopLimit.FromNVPCollection(nvpCollection)); } public void Add(StopLimits stopLimits) { foreach(StopLimit stopLimit in stopLimits)this.Add(stopLimit); } } public class StopLimit { public String Symbol{get;set;} public double StopPrice{get;set;} public double Shares{get;set;} public String StopType{get;set;} public StopLimit() { } public override String ToString() { StringBuilder sb = new StringBuilder(); sb.Append(Symbol).Append(","); sb.Append(Utility.FormatCurrency(StopPrice)).Append(","); sb.Append(Utility.FormatNumber(Shares, 3)).Append(","); sb.Append(StopType).Append(","); return sb.ToString(); } public virtual NVPCollection ToNVPCollection() { NVPCollection nvpCollection = new NVPCollection(); nvpCollection.Add(new NVP("Symbol", Symbol.ToString())); nvpCollection.Add(new NVP("StopPrice", StopPrice.ToString())); nvpCollection.Add(new NVP("Shares", Shares.ToString())); nvpCollection.Add(new NVP("StopType", StopType.ToString())); return nvpCollection; } public static StopLimit FromNVPCollection(NVPCollection nvpCollection) { StopLimit stopLimit=new StopLimit(); NVPDictionary nvpDictionary=nvpCollection.ToDictionary(); stopLimit.Symbol=nvpDictionary["Symbol"].Get(); stopLimit.StopPrice=nvpDictionary["StopPrice"].Get(); stopLimit.Shares=nvpDictionary["Shares"].Get(); stopLimit.StopType=nvpDictionary["StopType"].Get(); return stopLimit; } } }