Ejemplo n.º 1
0
        private MultipartPartContent GetPart()
        {
            if (_reader.IsInPreamble || !(_currentPart?.ReadComplete ?? true))
            {
                var result = _reader.ReadToNextPart();
                if (result.Error)
                {
                    return(new MultipartPartContent(result.ErrorMessage));
                }
            }

            if (_reader.EndOfStream || _reader.IsInEpilogue)
            {
                return(null);
            }

            var headers = _reader.IsInHeaders
                ? _reader.ReadString()
                : null;

            _currentPart = new MultipartPartContent(_reader, headers?.Data,
                                                    headers?.Error ?? false, headers?.ErrorMessage);

            return(_currentPart);
        }
Ejemplo n.º 2
0
 public MultipartPartContent Peek()
 {
     if (_peeked != null)
     {
         return(_peeked);
     }
     return(_reader.EndOfStream
         ? null
         : _peeked = GetPart());
 }
Ejemplo n.º 3
0
        private MultipartPartContent PopPeeked()
        {
            if (_peeked == null)
            {
                return(null);
            }
            var peeked = _peeked;

            _peeked = null;
            return(peeked);
        }