Dev2.DataList.Contract.Binary_Objects.Structs.SBinaryDataListEntry.FetchSortData C# (CSharp) Method

FetchSortData() public method

public FetchSortData ( ) : IList>.IDictionary
return IList>.IDictionary
        public IDictionary<int, IList<IBinaryDataListItem>> FetchSortData()
        {
            IDictionary<int, IList<IBinaryDataListItem>> result = new Dictionary<int, IList<IBinaryDataListItem>>(Count);
            IIndexIterator ii = Keys;
            if(IsRecordset)
            {
                short colCnt = (short)Columns.Count;

                while(ii.HasMore())
                {
                    // TODO : What if they are in different locations?

                    IList<IBinaryDataListItem> tmp = new List<IBinaryDataListItem>(Columns.Count);
                    BinaryDataListRow row;
                    int next = ii.FetchNextIndex();

                    // Hi-jack lookup

                    StorageKey sk = new StorageKey(DataListKey, next + GenerateKeyPrefix(Namespace, DataListKey));

                    if(_itemStorage.TryGetValue(sk, colCnt, out row))
                    {
                        for(int i = 0; i < Columns.Count; i++)
                        {
                            tmp.Add(new BinaryDataListItem(row.FetchValue(i, colCnt), Namespace, Columns[i].ColumnName, next));
                        }

                        result[next] = tmp;
                    }
                }
            }

            return result;
        }