Пример #1
0
        private static void FetchQueryResultsRecursively <T>(GetAllObjectsQuery <T> query,
                                                             ResponseArray <T> queryResult,
                                                             PaginationParameters pagination,
                                                             List <T> culmativeResults,
                                                             Action <List <T> > onSuccess,
                                                             Action <WebRequestError> onError)
        {
            Debug.Assert(pagination.limit > 0);

            culmativeResults.AddRange(queryResult.Items);

            if (queryResult.Count < queryResult.Limit)
            {
                onSuccess(culmativeResults);
            }
            else
            {
                pagination.offset += pagination.limit;

                query(pagination,
                      (r) => FetchQueryResultsRecursively(query,
                                                          queryResult,
                                                          pagination,
                                                          culmativeResults,
                                                          onSuccess,
                                                          onError),
                      onError);
            }
        }
Пример #2
0
        private static void FetchAllResultsForQuery <T>(GetAllObjectsQuery <T> query,
                                                        Action <List <T> > onSuccess,
                                                        Action <WebRequestError> onError)
        {
            var pagination = new PaginationParameters()
            {
                limit  = PaginationParameters.LIMIT_MAX,
                offset = 0,
            };

            var results = new List <T>();

            query(pagination,
                  (r) => FetchQueryResultsRecursively(query,
                                                      r,
                                                      pagination,
                                                      results,
                                                      onSuccess,
                                                      onError),
                  onError);
        }