// TODO: avoid this readunderlyings in here. do it somewhere else private IEnumerable <string> ReadUnderlyings(StatementBuilder.VirtualOrder virtualOrderStatementBuilder) { var sqlReader = new SqlDataReader(); foreach (var row in sqlReader.GetRows(virtualOrderStatementBuilder.GetUnderlyingsQueryStatement()).Distinct()) { yield return((string)row[row.Keys.First()]); } }
public VirtualOrderBuildingPlan(Guid wikifolioGuid, int limitOfVirtualOrderGroups = 50, bool createUnderlyings = true, bool createPhoneOrders = false) { var virtualOrderStatementBuilder = new StatementBuilder.VirtualOrder(wikifolioGuid, limitOfVirtualOrderGroups); this.statementBuilders = new List <IStatementBuilder>() { virtualOrderStatementBuilder }; if (createUnderlyings) { foreach (var underlyingIsin in this.ReadUnderlyings(virtualOrderStatementBuilder)) { this.statementBuilders.Insert(0, new StatementBuilder.Underlying(underlyingIsin)); } } if (createPhoneOrders) { throw new NotImplementedException("Phone Order creation not yet implemented"); } }