public bool MoveNext()
            {
                _currentItemWrapper?.PlaceInQuarantine();

                while (true)
                {
                    if (_itemWrappersLeft.Count == 0)
                    {
                        _currentItemWrapper = null;
                        return(false);
                    }

                    int index = _itemWrappersLeft.Count == 1
                        ? 0
                        : _random.Next(_itemWrappersLeft.Count);

                    _currentItemWrapper = _itemWrappersLeft[index];

                    _itemWrappersLeft.RemoveAt(index);

                    if (!_currentItemWrapper.QuarantinedUntil.HasValue ||
                        _currentItemWrapper.QuarantinedUntil.Value <= _dateTimeProvider.Time())
                    {
                        return(true);
                    }
                }
            }
Beispiel #2
0
            public bool MoveNext()
            {
                _currentItemWrapper?.PlaceInQuarantine();

                while (true)
                {
                    if (_testedItemWrappers.Count == _itemsWrappers.Length)
                    {
                        _currentItemWrapper = null;
                        return(false);
                    }

                    _currentItemWrapper = _getNextItem();
                    _testedItemWrappers.Add(_currentItemWrapper);

                    if (!_currentItemWrapper.QuarantinedUntil.HasValue ||
                        _currentItemWrapper.QuarantinedUntil.Value <= _dateTimeProvider.Time())
                    {
                        return(true);
                    }
                }
            }
Beispiel #3
0
            public bool MoveNext()
            {
                _currentItemWrapper?.PlaceInQuarantine();

                while (true)
                {
                    _currentIndex++;

                    if (_currentIndex >= _itemsWrappers.Length)
                    {
                        _currentItemWrapper = null;
                        return(false);
                    }

                    _currentItemWrapper = _itemsWrappers[_currentIndex];

                    if (!_currentItemWrapper.QuarantinedUntil.HasValue ||
                        _currentItemWrapper.QuarantinedUntil.Value <= _dateTimeProvider.Time())
                    {
                        return(true);
                    }
                }
            }