Exemple #1
0
        protected IEnumerable <T> FastRetrieveAllItems()
        {
            var sqlQuery = _retrieveSqlQuery;
            var allItems = new List <T>();

            if (sqlQuery.IndexOf("offset") != -1 && sqlQuery.IndexOf("fetch") != -1)
            {
                while (true)
                {
                    var items = ExecuteRetrieveAllItems(sqlQuery);
                    allItems.AddRange(items);
                    if (items.Count() > 0)
                    {
                        try
                        {
                            var offsetNumber = SqlQueryHelper.GetOffsetNumber(sqlQuery);
                            var fetchNumber  = SqlQueryHelper.GetFetchNumber(sqlQuery);
                            sqlQuery = SqlQueryHelper.ChangeSqlQueryPagination(sqlQuery, offsetNumber + fetchNumber, fetchNumber);
                        }
                        catch (Exception ex)
                        {
                            _logger.Error("FastRetrieveAllItems - error when SqlQueryHelper tried change sqlQuery", ex);
                            break;
                        }
                    }
                    else
                    {
                        break;
                    }
                }
            }
            else
            {
                var items = ExecuteRetrieveAllItems(sqlQuery);
                allItems.AddRange(items);
            }
            return(allItems);
        }