public bool MoveNext()
        {
            if (++index >= limit)
            {
                if (current.Next == null)
                {
                    index = -1;
                    return(false);
                }

                index = 0;

                var t = DataFetcher.GetJsonOf <TInner>(current.Next);
                Task.WaitAll(t);
                if (t.IsFaulted)
                {
                    throw t.Exception;
                }

                var j = t.Result;
                current = JsonMapper.ToObject <ResourceListFragment <T, TInner> >(j);
                limit   = current.Results.Length;
            }

            return(true);
        }
        internal ResourceList(int count, int limit, ResourceListFragment <T, TInner> st)
        {
            Count = count;
            Limit = limit;

            start = st;
        }
        internal ResourceListEnumerator(int limit = 20, ResourceListFragment <T, TInner>?start = null)
        {
            index      = -1;
            this.limit = limit;

            this.start = current = default(ResourceListFragment <T, TInner>);

            if (start.HasValue)
            {
                this.start = current = start.Value;
            }
            else
            {
                var t = DataFetcher.GetListJsonOf <TInner>(0, limit);

                var j = t.Result;
                start = current = JsonMapper.ToObject <ResourceListFragment <T, TInner> >(j);
            }

            this.limit = current.Results.Length;
        }
 public void Dispose()
 {
     current = new ResourceListFragment <T, TInner>();
     index   = -1;
 }
 public void Reset()
 {
     index   = 0;
     current = start;
 }