public QueryCapitalResult QueryCapital(out string error) { TabulateData data; if (!QueryData(DataCategory.Capital, out data, out error)) { return(null); } var results = QueryCapitalResult.ExtractFrom(data); if (results == null || results.Count() == 0) { error = "QueryCapital succeeded, but no result"; return(null); } return(results.First()); }
public static IEnumerable <QueryCapitalResult> ExtractFrom(TabulateData data) { if (columnIndices == null) { columnIndices = columns.Select(c => data.GetColumnIndex(c)).ToArray(); } var subData = data.GetSubColumns(columnIndices); foreach (var row in subData.Rows) { QueryCapitalResult result = new QueryCapitalResult(); int index = 0; result.RemainingCapital = TradingHelper.SafeParseFloat(row[index++]); result.UsableCapital = TradingHelper.SafeParseFloat(row[index++]); result.FrozenCapital = TradingHelper.SafeParseFloat(row[index++]); result.CashableCapital = TradingHelper.SafeParseFloat(row[index++]); result.TotalEquity = TradingHelper.SafeParseFloat(row[index++]); result.LatestMarketValue = TradingHelper.SafeParseFloat(row[index++]); yield return(result); } }