public Trade[] GetAllTrades(QueryRule query) { var allTrades = new List<Trade>(); var pageQuery = new QueryRuleWithPage() { StartTime = query.StartTime, EndTime = query.EndTime, PayType = query.PayType, Status = query.Status, Page = 1, }; while (true) { var queryResult = GetTrades(pageQuery); if (queryResult.Trades != null) { allTrades.AddRange(queryResult.Trades); } if (queryResult.HasNext) { pageQuery.Page = pageQuery.Page + 1; } else { break; } } return allTrades.ToArray(); }
public QueryResult GetTrades(QueryRuleWithPage query) { if (query == null) { throw new ArgumentNullException("query"); } var context = FlyingMessageContext.Current; var requestUrl = string.Format(queryTrade, context.HostUrl, query.Status.ToString("F"), query.PayType.ToString("F"), query.Page); if (query.StartTime != DateTime.MinValue) { requestUrl = string.Format("{0}&startTime={1}", requestUrl, query.StartTime.ToDefaultString()); } if (query.EndTime != DateTime.MinValue) { requestUrl = string.Format("{0}&endTime={1}", requestUrl, query.EndTime.ToDefaultString()); } var resultWrapper = Get<QueryResultWrapper>(requestUrl); if (resultWrapper.QueryResult != null) { return resultWrapper.QueryResult; } throw new RepositoryException( FlyingMessageRS.RepositoryRequestErrorMessageFormat( resultWrapper.Message, resultWrapper.ErrorCode)); }