/// <summary>
        /// Read next item.
        /// </summary>
        /// <returns></returns>
        private T ReadNextItem()
        {
            var item = Delegate.Read();

            if (item != null)
            {
                if (CurrentResource != null)
                {
                    string fileName = CurrentResource.GetFileInfo().Name;
                    context.Put(ResourceMap, _resourcesMap);
                    if (_resourcesMap.ContainsKey(fileName))
                    {
                        _resourcesMap[fileName].Add(item);
                    }
                    else
                    {
                        List <T> objectList = new List <T>();
                        objectList.Add(item);
                        _resourcesMap.Add(fileName, objectList);
                    }
                    context.Put(ResourceMap, _resourcesMap);
                }
            }

            while (item == null)
            {
                _currentResource++;

                if (_currentResource >= Resources.Count)
                {
                    break;
                }

                Delegate.Close();
                Delegate.Resource = Resources[_currentResource];
                Delegate.Open(new ExecutionContext());
                item = Delegate.Read();
                if (item != null)
                {
                    if (CurrentResource != null)
                    {
                        string fileName = CurrentResource.GetFileInfo().Name;
                        if (_resourcesMap.ContainsKey(fileName))
                        {
                            _resourcesMap[fileName].Add(item);
                        }
                        else
                        {
                            List <T> objectList = new List <T>();
                            objectList.Add(item);
                            _resourcesMap.Add(fileName, objectList);
                        }
                        context.Put(ResourceMap, _resourcesMap);
                    }
                }
            }

            base.Update(context);
            return(item);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Read next item.
        /// </summary>
        /// <returns></returns>
        private T ReadNextItem()
        {
            var item = Delegate.Read();

            while (item == null)
            {
                _currentResource++;

                if (_currentResource >= Resources.Length)
                {
                    break;
                }

                Delegate.Close();
                Delegate.Resource = Resources[_currentResource];
                Delegate.Open(new ExecutionContext());

                item = Delegate.Read();
            }

            return(item);
        }
Exemplo n.º 3
0
 /// <summary>
 /// Delegates to delegate stream.
 /// </summary>
 public override void Close()
 {
     Delegate.Close();
     _noInput = false;
 }